Провайдер для javax.xml.parsers.DocumentBuilderFactory не найден.

Я не могу преодолеть эту проблему. Просмотрен на многих форумах. Помощь Pls:

org.springframework.beans.factory.BeanDefinitionStoreException: Неожиданный синтаксический разбор XML-документа из ресурса ServletContext [/WEB-INF/applicationContext.xml]; вложенное исключение javax.xml.parsers.FactoryConfigurationError: поставщик для javax.xml.parsers.DocumentBuilderFactory не найден.

Я включил все файлы jar в bin xerces. Ниже приведена моя структура WEB-INF/lib:

Lib

Ответы

Ответ 1

Я мог бы полностью решить эту проблему, установив порядок, в котором загрузчик классов должен загружать файлы jar xerces (WAR- > EAR- > Server). Следующая ссылка взята с сайта Xerces в Apache. Это помогает решить вышеупомянутую проблему для Websphere Portal/WAS:

http://www.ibm.com/developerworks/websphere/library/techarticles/0310_searle/searle.html

Ответ 2

У нас есть эта проблема также при обновлении spring и jpa/hibernate от 3 до 4. Для нас это связано с тем, что hibernate-entitymanager 4.3.11 имеет зависимость от jdom, которая имеет зависимость от xml-apis, которая будет конфликтовать с JREs rt.jars javax.xml. Мы исключаем его, чтобы наш spring xml config мог быть правильно разобран. Чтобы решить проблему, мы можем просто исключить xml-apis из дерева зависимостей.

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

Ответ 3

У меня также возникла проблема с 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 (как это сделал Леон Ли) он работал нормально.

Ответ 4

Я смог найти решение (просматривая некоторые форумы):

  • Перейдите в место, где находится ваша JRE. Например, поскольку я использую WebSphere Portal JRE, я перешел в это место: C:\Program Files\IBM5\WebSphere\AppServer\java\jre\lib

  • Откройте файл jaxb.properties и измените свойство javax.xml.parsers.DocumentBuilderFactory, чтобы скомпилировать ваш XML-парсер. В моем случае это: javax.xml.parsers.DocumentBuilderFactory = org.apache.xerces.jaxp.DocumentBuilderFactoryImpl

Меня повысили до следующей проблемы:). Теперь я получаю ClassCastException. Ниже приведен журнал:

Неожиданный синтаксический разбор XML-документа из ресурса ServletContext [/WEB-INF/applicationContext.xml]; Вложенное исключение - это java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl

Вся помощь приветствуется. Спасибо вам