嗨,我想使用cxf
调用webservice,因为我在编码时已将所有与cxf相关的jar添加到项目构建路径中。在websphere中部署时,在SupportingJars文件夹中添加了所有jar,并将其设置为我的耳朵参考共享库。
请在下面找到代码来调用webservice
Dispatch disp = service.createDispatch( portName, jaxbContext,Service.Mode.PAYLOAD );
Object jaxbResObject = (Object) disp.invoke( jaxbReqObject );
此代码在Weblogic中正常工作为 org.apache.cxf.jaxws.DispatchImpl disp对象。但是在webshpere中它将 org.apache.axis2.jaxws.client.dispatch.JAXBDispatch 作为disp对象返回,并在
javax.xml.ws.soap.SOAPFaultException
时从axis2获取invoke
我知道像websphere插件文件夹包含axis2 jar。作为使用此jar的javax的默认createDispatch
方法。如何更改类加载策略或说javax createDispatch以使用我的cxf jars in ref shared lib folder ??
答案 0 :(得分:1)
WebSphere Application Server使用基于Axis2的Web服务引擎,如果要使用CXF,请按照此文档禁用Axis2引擎以避免任何Jar冲突问题。 https://www-01.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/twbs_thirdparty.html?lang=en
此致 杨