报错:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxxService': Invocation of init method failed;nested exception is java.lang.NoSuchMethodError:org/apache/ws/commons/schema/XmlSchemaCollection.read(Lorg/w3c/dom/Document;Ljava/lang/String;)Lorg/apache/ws/commons/schema/XmlSchema;这里一般就是冲突的jar包方法!我们解决问题的源头就在这里找!!
环境:
websphere版本8.5.5.10
jdk1.7.1_64
cxf2.7.16
原因分析:
在网上查了很多相关资料,基本上就是这几个原因:
1.websphere应用服务器中内嵌了其自有的一套JAX-WS引擎,专职提供webservice相关服务。
2.websphere应用服务器JAX-WS引擎引用了一些第三方的包,并且在您的应用也无可避免的引用了这些包,并且部署到websphere容器上时,这些第三方包其实已经加载到websphere的应用服务器中,再次加载会导致冲突。
3.websphere其他引入的jar包与工程中已有jar包冲突。
处理办法:
对于3.很好解决,先不引入cxf的时候报错的jar包,更换或者删掉就好。
对于1.禁用websphere自带的JAX-WS引擎,有3个方法,作用是一样的,不过我心情烦躁把3个地方都配了:
A.增加通用JVM参数
-Dcom.ibm.websphere.webservices.DisableIBMJAXWSEngine=true
B.