2013-08-27 4 views
1

Я использую JBoss 4.2 и jdk6.JBoss 4.2 загрузить javax.xml.parsers.DocumentBuilderFactory из xmlparserv2.jar?

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

Когда я использовал -verbose: класс, 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 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.war

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

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

ответ

0

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

Цитирование информации от here ...

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

Смежные вопросы