读书人

xercesImpl.jar与cxf矛盾的解决方案

发布时间: 2012-12-19 14:13:14 作者: rapoo

xercesImpl.jar与cxf冲突的解决方案

在使用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>

?

升级xerces包的版本号,在2.8.0的版本中就不与cxf冲突

读书人网 >编程

热点推荐