我有一个通过CXF为客户公开Web服务的应用程序。事情的这一面很完美。
应用程序还需要充当客户端并与其他服务器联系,这是我遇到问题的地方。
使用“Parent First”类加载我得到了这个:
Rails
使用“Parent last”类加载应用程序甚至无法公开自己的服务:
if params[:type_select] == 'Other'
type = params[:type_input]
else
type = params[:type_select]
end
我已经尝试通过WAR的manifest.mf禁用WebShere自己的JAXWS引擎,无论我尝试使用“Parent last”类加载,我总是会遇到如上所述的错误。一个不同的类,取决于我移动或替换的JAR,但始终是验证错误。
我也经历了official Apache documentation,各种IBM guides,无数blog和论坛帖子无济于事。我有这个
的结局同样的WAR在Tomcat,JBoss和WebLogic上运行完美。
这是所有第三方JAR文件的完整列表:
Caused by: javax.xml.ws.WebServiceException: Error: Maintain Session is enabled but none of the session properties (Cookies, Over-written URL) are returned.
at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:173) ~[org.apache.axis2.jar:na]
at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70) ~[org.apache.axis2.jar:na]
at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:118) ~[org.apache.axis2.jar:na]
at org.apache.axis2.jaxws.BindingProvider.setupSessionContext(BindingProvider.java:355) ~[org.apache.axis2.jar:na]
at org.apache.axis2.jaxws.BindingProvider.checkMaintainSessionState(BindingProvider.java:322) ~[org.apache.axis2.jar:na]
at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:393) ~[org.apache.axis2.jar:na]
at ...
有谁知道如何在WebSphere 8.5上获得Apache CXF 2.7.11,以便能够充当服务器和作为客户端?
答案 0 :(得分:4)
使用Was 8.5(jdk 1.7_64),CXF,JAXB&的xmlbeans:
JAXB是CXF使用的默认xml / java绑定。 8.5使用了支持JAXB api定义版本2.2.2(在<WebSphere-dir>\AppServer\endorsed_apis\jaxb-api.jar
中)和标准实现(在JRE rt.jar
中)。
Xmlbeans 2.4.x保存在Was(<WebSphere-dir>\AppServer\java_1.7_64\jre\lib\xml.jar
)中已经存在的org.w3c。*类中。
最后我们解决了这个问题:
首先按照此处的说明操作: http://www.ibm.com/developerworks/websphere/library/techarticles/1001_thaker/1001_thaker.html
然后从我们的部署中删除以下jar:
最后删除xmlbeas-2.x.jar中的所有org.w3c类
这是我们成功使用的所有第三方JAR文件的完整列表:
我们希望这会有所帮助。
答案 1 :(得分:1)
PARENT_LAST: 也许您在部署中使用javax.activation.DataHandler类有第三方库。尝试从部署中删除activation-1.1.jar。
这篇文章对您有用:LinkageError whilst trying to invoke CXF/SOAP webservice