您的位置:首页 > 其它

cxf .jar 包 冲突 setXmlStandalone(Z)V

2015-12-02 10:25 288 查看
摘要: cxf .jar 包 冲突 setXmlStandalone(Z)V

报错信息如下:
java.lang.AbstractMethodError: org.apache.xerces.dom.DeferredDocumentImpl.setXmlStandalone(Z)V

解决方法1:

在使用cxf做webserive时,第一次没有添加与数据库操作时一切正常,当添加了commons-pool.jar包以后就报如下错误:
java.lang.AbstractMethodError: org.apache.xerces.dom.DeferredDocumentImpl.setXmlStandalone(Z)V org.apache.cxf.transport.http.WSDLQueryHandler.updateDoc(WSDLQueryHandler.java:324) org.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHandler.java:223) org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:170) org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148) org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179) org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)

究其原因是因为cxf的包与xercesImpl.jar包冲突,因为commons-pool.jar依赖于xercesImpl.jar包。所以造成上面的错误,解决方案如下:
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.1</version>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xerces</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.8.0</version>
</dependency>

如果有工程包分别打出jar pom 及其它,那么需要在pom进行exclusion

解决方法2:
去掉xerces-2.4.0.jar,或者用最新版本(已测试通过)
下载地址:

xerces-2.9.0.jar

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xerces-2.9.0.jar