我目前正在尝试从 Weblogic 12c 和 Java 7 环境调用 JAX-WS。我已经使用 Maven 中的 weblogic 客户端生成器插件生成了客户端 stub ,具体来说:
<b>groupId:com.oracle.weblogic</b><br>
<b>artifactId:weblogic-maven-plugin</b>
客户端 jar 似乎生成得很好。我能够在 java 中生成客户端 stub ,但是当通过将 SOAP 消息发送到服务的 stub 调用实际 API 时,我得到以下奇怪的异常:
<b>com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:131)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:219)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:143)
at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:138)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:892)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:841)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:804)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:706)
at com.sun.xml.ws.client.Stub.process(Stub.java:385)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:189)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:102)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:172)
at $Proxy130.getSearchResults(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:601)
at weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke(ClientInstanceInvocationHandler.java:84)</b>
我在 glassfish 设置下看到了同样的问题 Here
但没有解决方案。
现在我已经尝试了 SOAP UI,服务从这里响应良好,我已经尝试使用 weblogic 11g,并且产生了相同的错误。我正在记录在生成异常之前发出的实际 SOAP 消息,并且 xml 是准确的并且在从 SOAP UI 运行时可以正常工作。
这可能是什么原因造成的?
谢谢
最佳答案
我花了几个小时才解决这个问题。我使用了错误的 BindingProviderProperties 接口(interface)。
BindingProviderProperties 接口(interface)存在于两个不同的包中。 (针对不同的Java/JAX-WS版本)
如果您收到 ClassCastException,很可能您需要在您的 SOAP 服务类中导入不同的包。
改变
import com.sun.xml.ws.client.BindingProviderProperties;
至
import com.sun.xml.internal.ws.client.BindingProviderProperties;
关于java - com.sun.xml.ws.client.ClientTransportException : HTTP transport error: java. lang.ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887979/