2015-06-29 96 views
2

我有一個應用程序通過CXF爲客戶端公開Web服務。事情的這一面完美運作。WebSphere 8.5上的Apache CXF 2.7.11

該應用程序還需要充當客戶端本身並聯系其他服務器,這是我遇到問題的地方。

隨着「父爲先」的類加載我得到這個:

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 ... 

隨着「父最後的」類加載的應用程序甚至不能公開自己的服務:

[23/06/15 15:33:12:985 BST] 000002d3 servlet  E com.ibm.ws.webcontainer.servlet.ServletWrapper service Uncaught service() exception thrown by servlet cxf: java.lang.VerifyError: JVMVRFY013 class loading constraint violated; class=org/apache/cxf/jaxb/attachment/JAXBAttachmentUnmarshaller, method=getAttachmentAsDataHandler(Ljava/lang/String;)Ljavax/activation/DataHandler;, pc=0 
at java.lang.J9VMInternals.verifyImpl(Native Method) 
at java.lang.J9VMInternals.verify(J9VMInternals.java:85) 
at java.lang.J9VMInternals.initialize(J9VMInternals.java:162) 

我曾嘗試禁用WebShere的通過WAR的manifest.mf擁有JAXWS引擎,無論我嘗試使用「Parent last」類加載,我總會遇到類似上述的錯誤。一個不同的類取決於我移動或替換了哪個JAR,但總是出現驗證錯誤。

我也經歷了official Apache documentation,各種IBM guides,無數blog和論壇帖子無濟於事。我在這個機智的末端

相同的WAR在Tomcat,JBoss和WebLogic上完美運行。

這是所有第三方JAR文件的完整列表:

activation-1.1.jar 
antisamy-1.4.3.jar 
aopalliance-1.0.jar 
asm-3.3.1.jar 
batik-css-1.7.jar 
batik-ext-1.7.jar 
batik-util-1.7.jar 
bcprov-jdk15-1.46.jar 
bsh-core-2.0b4.jar 
commons-beanutils-1.7.0.jar 
commons-beanutils-core-1.7.0.jar 
commons-codec-1.3.jar 
commons-collections-3.2.jar 
commons-configuration-1.5.jar 
commons-dbutils-1.6.jar 
commons-digester-1.8.jar 
commons-fileupload-1.3.1.jar 
commons-httpclient-3.1.jar 
commons-io-2.4.jar 
commons-jexl-2.1.1.jar 
commons-lang-2.4.jar 
commons-logging-1.1.1.jar 
cxf-api-2.7.11.jar 
cxf-rt-bindings-soap-2.7.11.jar 
cxf-rt-bindings-xml-2.7.11.jar 
cxf-rt-core-2.7.11.jar 
cxf-rt-databinding-jaxb-2.7.11.jar 
cxf-rt-frontend-jaxws-2.7.11.jar 
cxf-rt-frontend-simple-2.7.11.jar 
cxf-rt-transports-http-2.7.11.jar 
cxf-rt-ws-addr-2.7.11.jar 
cxf-rt-ws-policy-2.7.11.jar 
dom4j-1.6.1.jar 
esapi-2.0.1.jar 
FastInfoset-1.0.2.jar 
geronimo-javamail_1.4_spec-1.7.1.ja 
hamcrest-all-1.3.jar 
hsqldb-1.8.0.10.jar 
httpclient-4.3.6.jar 
httpcore-4.3.3.jar 
jaxen-1.1-beta-8.jar 
jaxrpc-api-1.1.jar 
jaxrpc-impl-1.1.3_01.jar 
jaxrpc-spi-1.1.3_01.jar 
joda-time-2.2.jar 
js-1.7R2.jar 
log4j-1.2.16.jar 
logback-classic-0.9.21.jar 
logback-core-0.9.21.jar 
mail-1.4.7.jar 
mailapi-1.4.3.jar 
nekohtml-1.9.12.jar 
not-yet-commons-ssl-0.3.9.jar 
opensaml-2.6.1.jar 
openws-1.5.1.jar 
quartz-1.8.6.jar 
saaj-api-1.3.5.jar 
saaj-impl-1.3.jar 
serializer-2.7.1.jar 
slf4j-api-1.6.0.jar 
slf4j-log4j12-1.6.0.jar 
spring-aop-3.2.6.RELEASE.jar 
spring-beans-3.2.6.RELEASE.jar 
spring-context-3.2.6.RELEASE.jar 
spring-core-3.2.6.RELEASE.jar 
spring-expression-3.2.6.RELEASE.jar 
spring-web-3.2.6.RELEASE.jar 
stax2-api-3.1.4.jar 
velocity-1.7.jar 
vuelinkcore-20.2.3.jar 
vueservlet-20.2.3.jar 
woodstox-core-asl-4.2.1.jar 
wsdl4j-1.6.3.jar 
xml-apis-ext-1.3.04.jar 
xml-resolver-1.2.jar 
xmlsec-1.5.6.jar 
xmltooling-1.4.1.jar 
xom-1.1.jar 

有誰知道怎麼弄的Apache CXF 2.7.11在WebSphere 8.5能夠充當服務器作爲客戶端?

回答

4

我們必須使用8.5(JDK 1.7_64),CXF,JAXB & XMLBeans的同樣的問題:

JAXB是默認XML/Java綁定使用由CXF。是8.5使用認可的JAXB API定義版本2.2.2(在<WebSphere-dir>\AppServer\endorsed_apis\jaxb-api.jar)和標準實現(在JRE rt.jar)。

Xmlbeans 2.4.x保存在Was中已存在的org.w3c。*類(<WebSphere-dir>\AppServer\java_1.7_64\jre\lib\xml.jar)。

最後我們解決這樣:

這就是我們成功地使用所有的第三方JAR文件的完整列表:

  • CXF - * - 2.7.11.jar
  • 的dom4j-1.6.1.jar
  • 的Ehcache-2.8.2.jar
  • 的Ehcache核-2.5.1.jar
  • jettison- 1.1.jar
  • neethi-3.0.3.jar
  • OGNL-3.0.6.jar
  • opensaml-2.6.1.jar
  • openws-1.5.1.jar
  • 春 - * - 3.2.13.RELEASE.jar
  • stax2-API-3.1.1.jar
  • woodstox核-ASL-4.2.1.jar
  • WSDL4J-1.6.3.jar
  • WSS4J-1.6.10.jar
  • XML的旋轉變壓器1.2.jar
  • 的xmlbeans-2.3.0-now3c.jar
  • xmlpull-1.1.3.1.jar
  • XMLSchema的核 - 2.1 .0.jar
  • xmlsec-1.5.4.jar
  • xmltooling-1.4.1.jar
  • xpp3_min-1.1.4c.jar
  • 的XStream-1.4.7.jar

我們希望這是有益。