我有一个似乎是类加载器/ jar的问题。 Websphere 7,JDK 6。 当代码在一个简单的独立Java类中运行时,与Web服务交谈可以正常工作。
return selects
在调试器中,docManClient对象具有toString():
((WSBindingProvider) docManClient).setOutboundHeaders(Headers.create(otAuthElement));
类路径包括jaxws-rt-2.1.4.jar。
当代码在Websphere中运行时,强制转换失败。
JAX-WS RI 2.1.4-b01-: Stub for http://innov15.ncr.pwgsc.gc.ca/innov15_cws/DocumentManagement.svc
在调试器中,docManClient对象具有toString():
((WSBindingProvider) docManClient).setOutboundHeaders(Headers.create(otAuthElement));
java.lang.ClassCastException: com.sun.proxy.$Proxy484 incompatible with com.sun.xml.ws.developer.WSBindingProvider
这个jar只在Websphere-land中,不属于我项目的.ear文件:
org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler@a460a46
我尝试更改应用配置,更喜欢自己的类,而不是Websphere。 我使用wsadim工具更改为PARENT_LAST,但这对观察到的行为没有影响:
C:\dev_tools\server\IBM\WebSphere\AppServer\plugins\org.apache.axis2.jar
该应用是一个.ear,其中包含一个.war。
编辑后来补充说:我不清楚jax-ws-rt.jar和axis2.jar之间的关系。 axis2.jar不是jax-ws-rt.jar的替代品:当我切换到axis2.jar时,代码不再编译。