【发布时间】:2011-08-29 09:14:10
【问题描述】:
我已经通过执行命令生成了一个 jax-ws 客户端:
C:\wsdl>wsimport -keep -verbose -d 生成 HealthMobilitySequenceArtifacts.wsdlwsdl文件中的服务地址为:
肥皂:地址位置=“http://localhost:8585/active-bpel/services/HealthMobilitySequence好吧,我已经将生成的文件打包在一个 jar (clentjaxw.jar) 中,并且我在 eclipse 项目中使用它作为导入库来进行一些测试。
事实上,我能够毫无问题地进行测试,但是当我提供同事 clientjaxw.jar 时,他在执行过程中出现以下错误:
我不明白这个问题:尽管如此,同事还是能够在浏览器中看到该地址处的服务,并且 ping localhost 也可以运行。此外,我已经检查过他没有代理。
您对问题的原因有什么想法吗?
更新: 我必须添加新的详细信息:我发现该同事能够通过浏览器访问:http://localhost:8585/active-bpel/services/HealthMobilitySequence?wsdl,但如果他尝试访问:http://127.0.0.1:8585/active-bpel/services/ HealthMobilitySequence?wsdl 或使用 ip 地址代替 localhost 的相同 url 他失败了。在我的机器上我没有这样的问题,我可以通过所有可能性访问:localhost、机器名称、127.0.0.1、ipaddress。
所以我认为这可能是问题我的意思是我想象通过 java,在打开 java 套接字连接之前,url http://localhost:8585/active-bpel/services/HealthMobilitySequence 被翻译,在一个使用 ip 地址(或 127.0.0.1)的新连接中本地主机和访问失败。因此,问题似乎出在操作系统上,因为我们在操作系统的一部分上共享完全相同的配置(我的机器上是 win xp,他的机器上是 vista)。
一些想法?谢谢
更新:再次嗨,由于某种原因更换机器(总是 64 位),同事已经解决了我描述的问题。无论如何,他还有另一个不依赖于客户端的问题,因为他也通过使用 Eclipse Web Explorer 调用遇到了同样的问题。 例外情况如下: java.lang.ClassCastException: com.sun.xml.internal.messaging.saaj.soap.ver1_1.Envelope1_1Impl 无法转换为 java.lang.String
org.apache.axis.SOAPPart.getAsString(SOAPPart.java:554)
org.apache.axis.SOAPPart.writeTo(SOAPPart.java:322)
org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269)
org.apache.axis.Message.writeTo(Message.java:539)
org.apache.axis.transport.http.AxisServlet.sendResponse(AxisServlet.java:902)
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:777)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
请注意他要调用的 Web 服务是部署在 ActiveBPEL(版本 5.0.2)中的 bpel 流程之一,该 ActiveBPEL(版本 5.0.2)在 Tomcat 5.5.27 中运行。此外,它的配置如下:OP:windows 7,jdk:1.6,arch:64位,而我的是:OP:windows xp,jdk:1.6,arch:32位。 你对这个问题有什么想法吗?
提前致谢
【问题讨论】:
-
这听起来像是配置问题。我会检查您的同事是否安装了 IPv4(有关详细信息,请参阅 this post)。