将Hibernate应用程序部署到Wildfly 10 - org.dom4j.DocumentFactory ClassCastException

时间:2016-08-02 11:42:34

标签: hibernate jpa java-ee gradle wildfly

UPDATE:在销毁WildFly实例并从头开始重新配置后,错误已经神秘地解决为重复列的org.hibernate.MappingException。现在我实际上知道问题是什么,我可以开始修复它。

我目前正在评估WildFly 10中由Hibernate支持的JPA。但是,在尝试部署我的测试战争(由gradle构建)时,会产生一个看似无关的错误。以下是控制台日志中的行:

  

11:11:06,200 ERROR [org.jboss.as.controller.management-operation](管理任务-8)WFLYCTL0013:操作(“添加”)失败 - 地址:([(“deployment”=>“ TestWar.war“)]) - 失败描述:{”WFLYCTL0080:失败的服务“=> {“jboss.persistenceunit。\”TestWar.war#com.myapp.testwar.jpa \“”=> “服务jboss.persistenceunit中的org.jboss.msc.service.StartException。\”TestWar.war#com.myapp.testwar.jpa \“:java.lang.ClassCastException:org.dom4j.DocumentFactory无法强制转换为org.dom4j .DocumentFactory

     

引起:java.lang.ClassCastException:org.dom4j.DocumentFactory无法强制转换为org.dom4j.DocumentFactory“}}

来自我的build.gradle

group 'com.myapp'
name 'TestWar'
version '0.0.0-dev'

apply plugin: 'java'
apply plugin: 'war'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

configurations {
    provided
}

sourceSets {
    main {
        compileClasspath += configurations.provided
    }
}

dependencies {
    provided group: 'dom4j', name: 'dom4j', version: '1.6.1'
    provided group: 'javax.enterprise', name: 'cdi-api', version: '1.2'
    provided group: 'javax.inject', name: 'javax.inject', version: '1'
    provided group: 'org.hibernate', name: 'hibernate-core', version: '5.0.7.Final'
    provided group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.0.7.Final'
    provided group: 'org.hibernate', name: 'hibernate-envers', version: '5.0.7.Final'
    provided group: 'org.hibernate', name: 'hibernate-java8', version: '5.0.7.Final'
    provided group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.1-api', version: '1.0.0.Final'
    provided group: 'org.jboss.spec.javax.annotation', name: 'jboss-annotations-api_1.2_spec', version: '1.0.0.Final'
    provided group: 'org.jboss.spec.javax.ejb', name: 'jboss-ejb-api_3.2_spec', version: '1.0.0.Final'
    provided group: 'org.jboss.spec.javax.sql', name: 'jboss-javax-sql-api_7.0_spec', version: '2.0.0.Final'
    provided group: 'org.jboss.spec.javax.ws.rs', name: 'jboss-jaxrs-api_2.0_spec', version: '1.0.0.Final'
    provided group: 'org.postgresql', name: 'postgresql', version: '9.4.1209'
}

我在SO上的类似帖子中尝试了以下解决方案:

以及来自其他来源的这些:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
  <deployment>
    <dependencies>
      <module name="org.dom4j"/>
    </dependencies>
    <local-last value="true"/>
  </deployment>
</jboss-deployment-structure>

有没有人有任何进一步的建议,或者我做过一些非常愚蠢的事情?

编辑:显然,此错误可能是由任何数据源配置问题引起的(请参阅here)。作为参考,通过管理控制台对我的数据源的连接测试是成功的,并且就我所知,连接细节都是正确的。

1 个答案:

答案 0 :(得分:1)

此错误发生(目前),因为您在依赖项列表中包含EntityManager。删除它。你不应该为正常操作而需要它。

在此问题上查看此Hibernate Jira:org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory