javax.xml.parsers.DocumentBuilderFactory的提供程序找不到。

19

我无法解决这个问题,浏览了许多论坛。请帮忙:

org.springframework.beans.factory.BeanDefinitionStoreException: 从ServletContext资源[/WEB-INF/applicationContext.xml]解析XML文档时出现意外异常; 嵌套异常是 javax.xml.parsers.FactoryConfigurationError: 无法找到javax.xml.parsers.DocumentBuilderFactory的提供程序。

我已经在xerces bin中包含了所有的jar文件。 以下是我的WEB-INF/lib结构:

Lib


可能重复 - thar45
我不确定,但看起来即使添加了jar文件,也找不到DocumentFactoryBuilder的实现。 - Saket
然后尝试从这里下载不同的jars包 使用方法 更多信息 - thar45
4个回答

17

当我们从3升级到4的时候,我们也遇到了这个问题。对于我们来说,原因是hibernate-entitymanager 4.3.11依赖于jdom,而jdom又依赖于xml-apis,这将与JRE的rt.jar中的javax.xml冲突。我们排除它,以便我们的spring xml配置文件可以被正确解析。为了解决这个问题,我们只需从依赖树中排除xml-apis。

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <exclusions>
        <exclusion>
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2
战列巡洋舰操作中 - Jegg
太棒了! - thomas.mc.work

4

我在使用WebSphere Portal 8时也遇到了这个问题。最近我使用xalan 2.7.0来访问和解析XML。

<dependency>
    <groupId>xalan</groupId>
    <artifactId>xalan</artifactId>
    <version>2.7.0</version>
    <exclusions>
        <exclusion>
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

在删除xml-apis(就像Leon Li所做的那样)之后,它可以正常工作。


1

0

我通过浏览一些论坛找到了解决方案:

  1. 转到JRE所在的位置。例如,由于我正在使用Websphere Portal JRE,因此我转到以下位置:C:\Program Files\IBM5\WebSphere\AppServer\java\jre\lib

  2. 打开jaxb.properties文件,并将属性javax.xml.parsers.DocumentBuilderFactory修改为适合您的XML解析器。在我的情况下,它是:javax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl

我已经晋升到下一个问题:). 现在我遇到了ClassCastException。以下是日志:

尝试从ServletContext资源[/WEB-INF/applicationContext.xml]分析XML文档时出现意外异常;嵌套异常是java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl

欢迎所有帮助。谢谢!


3
这可能会有所帮助。https://community.jboss.org/thread/152151 尝试从构建中删除xml-apis.jar。 - austin

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