java - com.sun.xml.ws.client.ClientTransportException : HTTP transport error: java. lang.ClassCastException

标签 java web-services soap

我目前正在尝试从 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/

相关文章:

java - 使用leve包从xsd文件生成java类

java - 杀死java中的无限循环

java - 如果某些 Kafka 节点时间偏移不同步,Spark 流作业会卡住

java - 多线程/ volatile 变量/条件/循环的特殊行为(Java)

java - 如何使用 maven 在 java 中设置 salesforce 出站消息的监听器?

php - Magento 社区 1.6.2 服务器的不同响应

使用 SSL 上的纯文本用户名凭据的第 3 方 SOAP 1.1 服务的 WCF 客户端配置

java - 向 SOAP 消息添加 header

java - PHP curl 问题 - 使用 @RequestParameter 参数的 Spring 3 REST PUT/POST 方法

java - 为 Java 公开 MYSQL (android)