Jar 在我的一个应用程序中看到Websphere类而不是类';水罐
我遇到了类加载器/jar问题。WebSphere7,JDK6。 当代码在简单、独立的Java类中运行时,与Web服务对话可以很好地工作Jar 在我的一个应用程序中看到Websphere类而不是类';水罐,jar,configuration,websphere,classloader,Jar,Configuration,Websphere,Classloader,我遇到了类加载器/jar问题。WebSphere7,JDK6。 当代码在简单、独立的Java类中运行时,与Web服务对话可以很好地工作 ((WSBindingProvider) docManClient).setOutboundHeaders(Headers.create(otAuthElement)); 在调试器中,docManClient对象具有以下toString(): 类路径包括jaxws-rt-2.1.4.jar 当代码在Websphere内部运行时,强制转换失败 ((WS
((WSBindingProvider) docManClient).setOutboundHeaders(Headers.create(otAuthElement));
在调试器中,docManClient对象具有以下toString():
类路径包括jaxws-rt-2.1.4.jar
当代码在Websphere内部运行时,强制转换失败
((WSBindingProvider) docManClient).setOutboundHeaders(Headers.create(otAuthElement));
java.lang.ClassCastException: com.sun.proxy.$Proxy484 incompatible with com.sun.xml.ws.developer.WSBindingProvider
在调试器中,docManClient对象具有以下toString():
此jar仅在Websphere land中,不是我的项目的.ear文件的一部分:
C:\dev_tools\server\IBM\WebSphere\AppServer\plugins\org.apache.axis2.jar
我试图更改应用程序配置,以使其自己的类优于Websphere的类。
我上次使用wsadim工具更改为PARENT_,但这对观察到的行为没有影响:
set dep [$AdminConfig getid /Deployment:my-ear/]
set depObject [$AdminConfig showAttribute $dep deployedObject]
set classldr [$AdminConfig showAttribute $depObject classloader]
$AdminConfig showall $classldr
$AdminConfig modify $classldr {{mode PARENT_LAST}}
$AdminConfig save
$AdminConfig showall $classldr
该应用程序是一个.ear,其中包含一个.war
稍后添加编辑:我不清楚jax-ws-rt.jar和axis2.jar之间的关系。axis2.jar并不是jax-ws-rt.jar的替代品:当我切换到axis2.jar时,代码不再编译。另一种先找到自己类的方法是将重叠的jar放入websphere(独立的)共享库中。看起来您更改了应用程序类加载器,但是您还需要将模块类加载器更改为parent last。我认为这可以在控制台中完成。还有一个jvm属性,disablejaxwsengine,或者类似的东西,可以帮助您摆脱WebSphere的jax ws impl。如果您只是使用普通jax-ws API,请尝试从类路径中完全删除
jaxws-rt-2.1.4.jar
,因为WebSphere已经提供了jax-ws引擎。否则,您将不得不禁用内部JAX-WS引擎-检查此项。另一种首先查找您自己的类的方法是将重叠的JAR放入websphere(隔离的)共享库中。看起来您更改了应用程序类加载器,但您还需要最后将模块类加载器更改为父类。我认为这可以在控制台中完成。还有一个jvm属性,disablejaxwsengine,或者类似的东西,可以帮助您摆脱WebSphere的jax ws impl。如果您只是使用普通jax-ws API,请尝试从类路径中完全删除jaxws-rt-2.1.4.jar
,因为WebSphere已经提供了jax-ws引擎。否则,您必须禁用内部JAX-WS引擎-请检查此项
C:\dev_tools\server\IBM\WebSphere\AppServer\plugins\org.apache.axis2.jar
set dep [$AdminConfig getid /Deployment:my-ear/]
set depObject [$AdminConfig showAttribute $dep deployedObject]
set classldr [$AdminConfig showAttribute $depObject classloader]
$AdminConfig showall $classldr
$AdminConfig modify $classldr {{mode PARENT_LAST}}
$AdminConfig save
$AdminConfig showall $classldr