java.lang.ClassCastException:org.apache.xerces.jaxp.DocumentBuilderFactoryImpl无法强制转换为javax.xml.parsers.DocumentBuilderFactory
我在我的项目中使用java1.6
, jboss5.1
和Spring
maven 3.2.5
。我得到了
java.lang.ClassCastException:org.apache.xerces.jaxp.DocumentBuilderFactoryImpl无法强制转换为javax.xml.parsers.DocumentBuilderFactory
这是我的Pom.xml
4.0.0 com.varun.batch myproject war 0.0.1-SNAPSHOT myproject Maven Webapp http://maven.apache.org org.springframework spring-orm 3.2.13.RELEASE org.springframework.batch spring-batch-core 3.0.1.RELEASE org.springframework.batch spring-batch-infrastructure 3.0.1.RELEASE org.apache.axis2 axis2 1.6.2 org.apache.xmlbeans xmlbeans 2.5.0 org.apache.axis2 axis2-transport-local 1.6.1 org.apache.axis2 axis2-transport-http 1.6.1 commons-codec commons-codec 1.6 org.apache.poi poi 3.9 org.hibernate.javax.persistence hibernate-jpa-2.0-api 1.0.0.Final org.hibernate hibernate-validator 3.1.0.CR2 org.slf4j slf4j-api org.hibernate hibernate-entitymanager 3.3.1.ga commons-logging commons-logging org.hibernate hibernate-core 3.3.0.CR2 org.hibernate hibernate-ehcache 3.3.0.CR2 jboss-logging org.jboss.logging commons-logging commons-logging c3p0 c3p0 0.9.1.1 antlr antlr 2.7.7 aopalliance aopalliance 1.0 javax.servlet javax.servlet-api 3.0.1 stax stax-api 1.0.1 org.apache.axis2 axis2-kernel 1.6.1 servlet-api javax.servlet org.apache.ws.commons.axiom axiom-api 1.2.12 commons-logging commons-logging org.apache.geronimo.specs geronimo-activation_1.1_spec 1.0.2 org.apache.geronimo.specs geronimo-javamail_1.4_spec 1.6 jaxen jaxen 1.1.1 xercesImpl xerces xml-apis xml-apis xmlParserAPIs xerces org.apache.geronimo.specs geronimo-stax-api_1.0_spec 1.0.1 org.apache.geronimo.specs geronimo-ws-metadata_2.0_spec 1.1.2 org.apache.ws.commons.axiom axiom-impl 1.2.12 commons-logging commons-logging org.codehaus.woodstox wstx-asl 3.2.9 org.apache.geronimo.specs geronimo-jta_1.1_spec 1.1 commons-httpclient commons-httpclient 3.1 commons-logging commons-logging wsdl4j wsdl4j 1.6.2 org.apache.ws.commons.schema XmlSchema 1.4.7 org.apache.httpcomponents httpcore 4.0 com.javaetmoi.core javaetmoi-spring4-vfs2-support 1.4.0 org.springframework spring-core 3.2.13.RELEASE commons-logging commons-logging org.springframework spring-aop 3.2.13.RELEASE org.springframework spring-tx 3.2.13.RELEASE org.springframework spring-expression 3.2.13.RELEASE org.springframework.retry spring-retry 1.0.3.RELEASE javax.persistence persistence-api 1.0 com.oracle ojdbc5 11.2.0.1 provided org.slf4j slf4j-api 1.7.11 org.slf4j slf4j-simple 1.6.4 log4j log4j 1.2.17 commons-logging commons-logging 1.1.3 logkit logkit 1.0.1 org.apache.logging.log4j log4j-api 2.0 org.slf4j log4j-over-slf4j 1.7.11 org.springframework spring-jdbc 3.2.13.RELEASE com.thoughtworks.xstream xstream 1.4.7 org.javassist javassist 3.18.1-GA javax.batch javax.batch-api 1.0 org.springframework spring-beans 3.2.13.RELEASE org.springframework spring-context 3.2.13.RELEASE aopalliance aopalliance 1.0 javax.ws.rs jsr311-api 1.0 org.jboss.logging jboss-logging 3.3.0.Final org.apache.maven.plugins maven-compiler-plugin 3.1 1.6 1.6 org.apache.axis2 axis2-wsdl2code-maven-plugin 1.6.2 wsdl2code true com.globalss.data.processor.service src/main/resources/wsdl/MonitoringService.wsdl xmlbeans sync true true true org.apache.maven.plugins maven-dependency-plugin copy-dependencies package copy-dependencies ${project.build.directory} false true target/generated-sources/axis2/wsdl2code/resources target/generated-sources/xmlbeans/resources src/main/resources src/main/java/com/globalss/dnb/monitor/model/ com/globalss/dnb/monitor/model/ *.hbm.xml
我尝试了多种解决方案,但无法解决它。
第一种方法)在jboss-5.1.0.GA \ lib \ endorsed文件夹中我有这个jar (xercesImpl)
。 所以我删除了那个jar,并运行该项目。
现在我得到了这个例外
xception将上下文初始化事件发送到类的监听器实例org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanDefinitionStoreException:从类路径资源解析XML文档的意外exception[spring-batch-context.xml]; 嵌套exception是javax.xml.parsers.FactoryConfigurationError:无法找到javax.xml.parsers.DocumentBuilderFactory的提供程序
我尝试用pom.xml评论了bellow依赖项
jaxen jaxen 1.1.1 xercesImpl xerces xml-apis xml-apis xmlParserAPIs xerces
但我得到了同样的例外
org.springframework.beans.factory.BeanDefinitionStoreException:从类路径资源解析XML文档的意外exception[spring-batch-context.xml]; 嵌套exception是java.lang.ClassCastException:org.apache.xerces.jaxp.DocumentBuilderFactoryImpl无法转换为org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:413)中的javax.xml.parsers.DocumentBuilderFactory
3)方法我看到了一些关于同一问题的解决方案,解决方案说要添加波纹管依赖关系
xerces xercesImpl 2.11.0
在我的pom.xml中添加上述依赖项后,我得到了这个exception
org.jboss.xb.binding.JBossXBRuntimeException:无法在org.jboss.web.tomcat.service.deployers上的org.jboss.xb.binding.UnmarshallerFactory $ UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:100)创建新的SAX解析器.JBossContextConfig.processContextConfig(JBossContextConfig.java:549)org.apache.web.tomcat.service.deployers.JBossContextConfig.init(JBossContextConfig.java:536)org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java) :279)org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)org.apache.catalina.core.StandardContext.init(StandardContext.java:5436)org.apache.catalina.core。 StandardContext.start(StandardContext.java:4148)
4)方法我也尝试删除这个jar
这也适合我。
我对这个例外感到非常沮丧,但我无法解决这个问题,
这个链接真的很好,它解决了同样的问题,但我仍然无法解决这个问题,任何人都可以帮助我。 在Java / Maven中处理“Xerces hell”?
编辑
我找到了根本原因。 这是来自Jboss 5.1 Run-time
快照
这是来自Maven dependency
的快照
所以这两个jar子是冲突的。
所以我做了什么。 构建项目后,我从Myproject.war
删除了(xml-api1.0.b2.jar)
并在Jboos
手动部署了项目,并且jboss不会抛出错误。
但是当我不从myproject.war
删除(xml-api1.0.b2.jar)
并在jboss中部署时,它会抛出相同的错误。
所以我必须从pom.xml
删除依赖项。
for (xml-api1.0.b2.jar)
我已经定义了波纹管依赖项
jaxen jaxen 1.1.1 xercesImpl xerces xml-apis xml-apis xmlParserAPIs xerces
但是当我从我的pom.xml
评论这个依赖时,我仍然得到了Maven依赖中的jar,就像我在图像中看到的那样。
我真的没有从这里(xml-api1.0.b2.jar)
。 任何人都可以通过查看我的pom.xml
让我。
xml-api1.0.b2.jar由:poi-3.9导入。 poi-3.9依赖于dom4j,而dom4j包含xml-api1.0.b2因此,你可以将poi升级到3.16,它将解决这个问题。