在MobileFirst服务器(Liberty服务器)中使用jax-ws [英] Using jax-ws in MobileFirst server (Liberty server)

查看:126
本文介绍了在MobileFirst服务器(Liberty服务器)中使用jax-ws的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在尝试从Java JAX-RS适配器访问SOAP 1.1 Web服务。



我们正在使用从我们的WSDL生成的SOAP客户端。 / p>

但是当解组肥皂故障时,我们会得到以下异常:

 。 .. 
引起:java.lang.ExceptionInInitializerError
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:107)
at com。 sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:135 )
。在com.sun.proxy。$ Proxy196.rechercherContrats(来源不明)
在fr.sma.prod.adapter.ContratResource.rechercherContrats(来源不明)
在sun.reflect.NativeMethodAccessorImpl .invoke0(本机方法)
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMetho dAccessorImpl.java:43)
在java.lang.reflect.Method.invoke(Method.java:606)
在org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler。 java:63)
...
引起:java.lang.ClassCastException:com.sun.xml.bind.v2.runtime.JAXBContextImpl无法强制转换为com.sun.xml.internal.bind .api.JAXBRIContext
在com.sun.xml.internal.ws.fault.SOAPFaultBuilder $ 1.run(SOAPFaultBuilder.java:570)$ b $在com.sun.xml.internal.ws.fault.SOAPFaultBuilder b $ 1.run(SOAPFaultBuilder.java:566)
在java.security.AccessController.doPrivileged(本机方法)
在com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createJAXBContext(SOAPFaultBuilder.java :565)
at com.sun.xml.internal.ws.fault.SOAPFaultBuilder。< clinit>(SOAPFaultBuilder.java:555)
... 94 more

版本:

  ************ **************************** ****** 
product = WebSphere Application Server 8.5.5.5(wlp-1.0.8.cl50520150305-2202)
wlp.install.dir = C:/Users/a10344/.ibm/mobilefirst /7.1.0.00.20150807-0630/server/wlp/
java.home = C:\Program Files\Java\jdk1.7.0_71\jre
java.version = 1.7.0_71
java.runtime = Java(TM)SE运行时环境(1.7.0_71-b14)
os = Windows 7(6.1; amd64)(en_US)
process = 52164 @ P72302W
******************************** ************************************************

该服务的jaxb类是使用CXF maven插件生成的,该插件生成标准的jax-ws / jaxb代码。

  ... 
service = javax.xml.ws.Service.create(wsdlUrl,serviceQName);
productionService = service.getPort(ProductionService.class);
productionService.rechercherContrat(...);
...

谢谢,



米兰

解决方案

好像我们无法使用带肥皂的java适配器(JDK和JK之间的无法解决的类冲突) Embedeeded Worklight Jar)。好像这是一个未解决的错误:现在IBM要求我们打开一个问题,发送我们的代码来解决问题。
嗯,总结:没有解决方案。我们正在等待下一个版本希望这个问题得到解决。


We are trying to access SOAP 1.1 Web services from a Java JAX-RS adapter.

We are using a SOAP Client that has been generated from our WSDL.

But when unmarshalling soap fault we get the following exception:

...
Caused by: java.lang.ExceptionInInitializerError
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:107)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
    at com.sun.proxy.$Proxy196.rechercherContrats(Unknown Source)
    at fr.sma.prod.adapter.ContratResource.rechercherContrats(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63)
...
Caused by: java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.internal.bind.api.JAXBRIContext
    at com.sun.xml.internal.ws.fault.SOAPFaultBuilder$1.run(SOAPFaultBuilder.java:570)
    at com.sun.xml.internal.ws.fault.SOAPFaultBuilder$1.run(SOAPFaultBuilder.java:566)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createJAXBContext(SOAPFaultBuilder.java:565)
    at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.<clinit>(SOAPFaultBuilder.java:555)
... 94 more

Versions:

********************************************************************************
product = WebSphere Application Server 8.5.5.5 (wlp-1.0.8.cl50520150305-2202)
wlp.install.dir = C:/Users/a10344/.ibm/mobilefirst/7.1.0.00.20150807-0630/server/wlp/
java.home = C:\Program Files\Java\jdk1.7.0_71\jre
java.version = 1.7.0_71
java.runtime = Java(TM) SE Runtime Environment (1.7.0_71-b14)
os = Windows 7 (6.1; amd64) (en_US)
process = 52164@P72302W
********************************************************************************

The jaxb classes for the service are generated with a CXF maven plugin that generates a standard jax-ws/jaxb code.

...
service= javax.xml.ws.Service.create(wsdlUrl,serviceQName);
productionService= service.getPort(ProductionService.class);
productionService.rechercherContrat(...);
...

Thanks,

Milan

解决方案

Seems like we're unable to use java adapters with soap (Unsolvable Class conflicts with JaxB between JDK and Embedeeded Worklight Jar). Seems like it's an unsolved bug : Now IBM ask us to open an issue send our code to solve the problem. Well, to sum-up : There no solution. We're waiting next version hoping this problem solved.

这篇关于在MobileFirst服务器(Liberty服务器)中使用jax-ws的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆