JBoss 4.2 загружает javax.xml.parsers.DocumentBuilderFactory из xmlparserv2.jar?

Я использую JBoss 4.2 и jdk6.

Как я могу загрузить javax.xml.parsers.DocumentBuilderFactory только из xmlparserv2.jar в моем веб-приложении?

Когда я использовал -verbose:class, javax.xml.parsers.DocumentBuilderFactory загружался jdk6:

[Loaded javax.xml.parsers.DocumentBuilderFactory from C:\Program Files (x86)\Java\jdk1.6.0_21\jre\lib\rt.jar]

и xmlparserv2.jar

У меня есть следующая трассировка при загрузке Spring. Я использую ядро ​​Spring 3.1.3.

INFO  [STDOUT] ERROR [main] (ContextLoader.java:307) - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/classes/conf/applicationContext.xml]; nested exception is java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174
...

Caused by: java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory
at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:29)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:89)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:70)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)
... 149 more

MyEar
- lib
...
xmlparserv2.jar
...
- META-INF
application.xml
jboss-app.xml
+ mywar .война

У меня нет ничего в WEB-INF/lib с войны.
Я не могу удалить xmlparserv2.jar, потому что мне нужна реализация XMLNode в Oracle в каком-то банке.

Есть ли решения без миграции JBoss на более старую версию?


person Viv    schedule 27.08.2013    source источник


Ответы (1)


Не могли бы вы использовать системное свойство, чтобы принудительно использовать конкретную фабрику, которую вы хотите?

Цитирование информации из здесь...

Вы также можете установить системное свойство в своем коде: System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "new-factory"). Например, если вы используете синтаксический анализатор xerces, то new-factory заменяется на jorg .apache.xerces.jaxp.DocumentBuilderFactoryImpl.

person DanM    schedule 04.06.2014