AbstractMethodError xerces DeferredDocumentImpl. setDocumentURI

原文出处:http://blog.chenlb.com/2010/11/abstract-method-error-xerces.html

前天项目用 jetty 启动,打开 solr 的管理主页,出现 java.lang.AbstractMethodError: org.apache.xerces.dom.DeferredDocumentImpl.setDocumentURI(Ljava/lang/String;)V 真受不了(之前还好端端的)。项目不用小型的 web 容器,很杯具。服务器用的是 jboss。

找了很多资料(有很多邮件列表打不开,gfw?),有一两篇可靠:ParserUtils 从 Web 应用程序拾取解析器Sun Java System Application Server Platform Edition 9 Release Notes 基本是同一篇。

说,可以用在jvm 启动时加以下参数:

  1. -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl  

也可以删除 WEB-INF/lib 中的 org.apache.xerces 包。我的项目里有 xerces-1.4.4.jar,xercesImpl-2.9.X.jar。删除 pom.xml 的 xercesImpl 依赖,还出现 xercesImpl-2.8.1.jar,唉,但不会出现上面的问题了。xerces 没使用过。

思考:java 平台开源的包太多,依赖乱,冲突多。


转者注:MyEclipse中采用,Windows-->Preferences-->Install JREs,选择你安装的JDK,设置以下参数即可。


另外伴随这种情况发生的还有xmlwsdl包的冲突问题,情形与此类似,一般是因为包依赖中有多个wsdl包的缘故,你查找一下,把其中的老版本删除即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值