【转】weblogic 发布CXF问题

之前在项目中遇见一个问题就是发布CXF到weblogic中遇见一个问题 

java.lang.LinkageError: loader constraints violated when linking org/w3c/dom/UserDataHandler class 
at org.apache.cxf.staxutils.StaxUtils.addLocation(StaxUtils.java:984) 
at org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:842) 
at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:911) 
at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:798) 
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:219) 
Truncated. see log file for complete stacktrace 


这个异常在网上很少找到,连google也很难搜索到,最后解决得知是依赖包冲突了 

具体解决方法: 
类A依赖于类B,但是类A在编译时、加载时使用了两个不同的类B的class,就会出现这个异常。也就是说,这个异常通常指示着jar包冲突。比如,cxf发布到weblogic下时,可能出现: 
java.lang.LinkageError: loader constraints violated when linking org/w3c/dom/UserDataHandler class 
这个org/w3c/dom/UserDataHandler class至少在三个jar包中:jdk的rt.jar,jaxen.jar,和xmlbeans.jar里。删除后两个jar,我的cxf就能正常运行了。

 

转自http://buyaozaibeidaole.iteye.com/blog/1672425

 

补充:如果程序启动时报与上面类似的错误,但类是javax/xml/namespace/QName或NamespaceContext,只需要删除jaxrpc.jar、geronimo-stax-api_1.0_spec-1.0.jar、stax-api-1.0.1.jar中的QName或NamespaceContext类就可以了

          

 

posted @ 2016-05-17 08:24  为牛马者,背负前行  阅读(1503)  评论(0编辑  收藏  举报

如果本页面列出的内容侵犯了您的权益,请告知。
知识共享许可协议
996.icu