我正在将应用程序部署在少数应用程序服务器上,其中之一是Wildfly 11.0.0.Final。我使用的JPA没有对Hibernate的直接依赖(只是JPA api)。我有一个persistence.xml文件,其中包含数据源的定义。
当我尝试运行此应用程序时,在解析persistence.xml文件时遇到以下异常:
org.dom4j.DocumentFactory无法转换为org.dom4j.DocumentFactory
我检查了一下,看来我有一个依赖关系,该依赖关系对版本为2.0.1的org.dom4j具有依赖关系。我在JBoss模块中看到Hibernate模块对org.dom4j具有依赖性:
<dependencies>
<module name="com.fasterxml.classmate"/>
<module name="javax.api"/>
<module name="javax.annotation.api"/>
<module name="javax.enterprise.api"/>
<module name="javax.persistence.api"/>
<module name="javax.transaction.api"/>
<module name="javax.validation.api"/>
<module name="javax.xml.bind.api"/>
<module name="org.antlr"/>
<module name="org.dom4j"/>
<module name="org.javassist" export="true"/>
<module name="org.jboss.as.jpa.spi"/>
<module name="org.jboss.jandex"/>
<module name="org.jboss.logging"/>
<module name="org.jboss.vfs"/>
<module name="org.hibernate.commons-annotations"/>
<module name="org.hibernate.infinispan" services="import" optional="true"/>
<module name="org.hibernate.jipijapa-hibernate5" services="import"/>
</dependencies>
但是,它使用dom4j模块,该模块在JBoss本身中定义,版本为1.6.1。我了解两个不同的版本可能会引起问题。
我的问题:
是否可以通过消除对JBoss dom4j(1.6.1版)的依赖性来解决它?我已经尝试过使用jboss-deployment-structure,但是没有帮助:
它适用于JBoss EAP 7.1,但不适用于Wildfly 11.0.0.Final。可能是什么原因?