2013-08-27 60 views
1

我正在使用JBoss 4.2和jdk6。JBoss 4.2從xmlparserv2.jar加載javax.xml.parsers.DocumentBuilderFactory?

我如何才能從加載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

我在戰爭的WEB-INF/lib中沒有任何東西。
我無法刪除xmlparserv2.jar,因爲我需要某些jar中的XMLNode的Oracle實現。

有沒有解決方案沒有遷移到舊版本的JBoss?

回答

0

你可以使用系統屬性來強制你想要的特定工廠?

報價從here信息...

您還可以設置代碼中的系統屬性: System.setProperty( 「javax.xml.parsers.DocumentBuilderFactory中」, 「新工廠」) 例如,如果您使用的是xerces解析器,那麼new-factory會被替換爲jorg.apache.xerces.jaxp.DocumentBuilderFactoryImpl。