【问题标题】:JBoss 4.2 load javax.xml.parsers.DocumentBuilderFactory from xmlparserv2.jar?JBoss 4.2 从 xmlparserv2.jar 加载 javax.xml.parsers.DocumentBuilderFactory?
【发布时间】:2013-08-27 09:10:29
【问题描述】:

我正在使用 JBoss 4.2 和 jdk6。

如何在我的 webapp 中仅从 xmlparserv2.jar 加载 javax.xml.parsers.DocumentBuilderFactory ?

当我使用-verbose:class时,jdk6加载的javax.xml.parsers.DocumentBuilderFactory:

[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

我的耳朵
- 库
...
xmlparserv2.jar
...
- 元信息
应用程序.xml
jboss-app.xml
+ mywar.war

我在战争中的 WEB-INF/lib 中没有任何内容。
我无法删除 xmlparserv2.jar,因为我需要一些 jar 中的 XMLNode 的 Oracle 实现。

有没有不将 JBoss 迁移到旧版本的解决方案?

【问题讨论】:

    标签: spring classloader xerces java-6 jboss-4.2.x


    【解决方案1】:

    你可以使用系统属性来强制你想要的特定工厂吗?

    引用here的信息...

    您还可以在代码中设置系统属性: System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "new-factory") 例如,如果您使用的是 xerces 解析器,则 new-factory 将替换为 jorg.apache.xerces.jaxp.DocumentBuilderFactoryImpl。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多