Провайдер для 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
Вся помощь приветствуется. Спасибо вам