Java xerces DocumentBuilderFactoryimpl未找到 - 怎么办?

6

我收到了这个信息:

javax.xml.parsers.FactoryConfigurationError: 提供程序 org.apache.xerces.jaxp.DocumentBuilderFactoryImp

但我似乎无法解决这个问题。我已经搜索过了,但找不到任何好的解决方案。

有人知道可能出了什么问题吗? 也许有办法解决它 :)

3个回答

4

org.apache.xerces是来自Apache Xerces软件包的内容,你的应用程序中有依赖它的部分。请尝试下载并将其添加到应用程序的类路径中(最新版本为2.9.0)。


我确实下载了Apache Xerces,结果一切都乱了。问题是我有一组我可以控制的JAR文件,但还有一组我无法控制的JAR文件。 - Zaxxon

1

DocumentBuilderFactory有一个多步骤的过程来查找实际的解析器实现,如链接的JavaDoc所述。你的错误信息几乎肯定来自那里。

我怀疑你的JBoss启动脚本不正确地设置了javax.xml.parsers.DocumentBuilderFactory系统属性(我以前见过这种情况发生,用于避免发布库中的错误)。我建议从JBoss配置目录中搜索该属性,然后显式设置jaxp.debug属性(也在链接中描述)。假设你的启动脚本确实显式设置了该属性,请找出是谁进行了更改,并询问他/她是否可以删除它(或者如果不能删除,则提供正确的JAR文件)。


0

根据您的问题标签为JBoss,我假设您的代码正在JBoss容器中运行。

JBoss可能已经加载了Xerces的一个版本供自己使用,而您正在尝试在您的代码中加载不同的版本(无论是显式地还是通过某些依赖关系),并且您的版本配置与已经加载的版本不兼容。

这个JBoss.or上的JIRA票建议删除jasperserver/WEB-INF/lib文件夹中的xercesimpl.jar以允许使用您的版本。


谢谢您的评论。 我正在JBoss容器中运行代码。 我必须补充说明,我对JBoss还很陌生。我在我的JBoss文件夹中找不到“jasperserver/WEB-INF/lib”文件夹,但它可以在jboss/lib/endorsed中找到“xercesimpl.jar”文件。您认为删除该文件会有什么好处吗? - Ikky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接