我收到了这个信息:
javax.xml.parsers.FactoryConfigurationError: 提供程序 org.apache.xerces.jaxp.DocumentBuilderFactoryImp
但我似乎无法解决这个问题。我已经搜索过了,但找不到任何好的解决方案。
有人知道可能出了什么问题吗? 也许有办法解决它 :)
org.apache.xerces
是来自Apache Xerces软件包的内容,你的应用程序中有依赖它的部分。请尝试下载并将其添加到应用程序的类路径中(最新版本为2.9.0)。
DocumentBuilderFactory有一个多步骤的过程来查找实际的解析器实现,如链接的JavaDoc所述。你的错误信息几乎肯定来自那里。
我怀疑你的JBoss启动脚本不正确地设置了javax.xml.parsers.DocumentBuilderFactory
系统属性(我以前见过这种情况发生,用于避免发布库中的错误)。我建议从JBoss配置目录中搜索该属性,然后显式设置jaxp.debug
属性(也在链接中描述)。假设你的启动脚本确实显式设置了该属性,请找出是谁进行了更改,并询问他/她是否可以删除它(或者如果不能删除,则提供正确的JAR文件)。
根据您的问题标签为JBoss,我假设您的代码正在JBoss容器中运行。
JBoss可能已经加载了Xerces的一个版本供自己使用,而您正在尝试在您的代码中加载不同的版本(无论是显式地还是通过某些依赖关系),并且您的版本配置与已经加载的版本不兼容。
这个JBoss.or上的JIRA票建议删除jasperserver/WEB-INF/lib文件夹中的xercesimpl.jar以允许使用您的版本。