您的位置:首页 > 其它

cxf .jar 包 冲突 setXmlStandalone(Z)V

2013-08-02 11:41 351 查看
报错信息如下:

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,或者用最新版本(未测试)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: