2016-08-02 5 views
1

UPDATE: После уничтожения экземпляра WildFly и перенастройки с нуля, ошибка таинственно разрешилась в org.hibernate.MappingException для повторных столбцов. Теперь, когда я действительно знаю, в чем проблема, я могу приступить к ее исправлению.Развертывание Hibernate приложение для Wildfly 10 - org.dom4j.DocumentFactory ClassCastException


Я в настоящее время оценки JPA при поддержке Hibernate в WildFly 10. Тем не менее, при попытке развернуть свою тестовую войну (построенный Gradle) производится, казалось бы, не имеет значения ошибок. Вот строки из журнала консоли:

11: 11: 06200 ERROR [org.jboss.as.controller.management-операции] (управление задачами-8) WFLYCTL0013: Операция ("добавить") не удалось - адрес: (["развертывание" => "TestWar.war")]) - описание ошибки: {"WFLYCTL0080: Неудавшиеся сервисы" => {"jboss.persistenceunit. \" TestWar.war # com.myapp.testwar.jpa \ "" => "org.jboss.msc.service.StartException в сервисе jboss.persistenceunit. \" TestWar.war # com.myapp.testwar.jpa \ ": java.lang.ClassCastException: org.dom4j.DocumentFactory не может быть cast to 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> 

У кого-нибудь есть какие-то дополнительные предложения, или я сделал что-то монументально глупое?


Edit: Видимо эта ошибка может быть вызвана любыми вопросами конфигурации источника данных (см here). Для справки, тесты соединения для моего источника данных через консоль администратора успешны, и сведения о подключении все правильно, насколько мне известно.

+0

У вас есть проблемы с загрузчиком классов – Jens

+0

@Jens Я не делаю какой-либо сам загрузки классов, хотя я знаю, что WildFly находится в процессе развертывания. Не могли бы вы рассказать о том, где может возникнуть проблема? – MTCoster

+0

В jboss имеется более одного загрузчика классов. Итак, похоже, что у вас есть dom4j jar несколько раз на разных загрузчиках классов. – Jens

ответ

1

Эта ошибка возникает (на данный момент), так как вы включили EntityManager в свой список зависимостей. Удалите это. Вы не должны нуждаться в этом для нормальной работы.

Смотрите эту гибернации Jira по вопросу: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory

+0

Поскольку ошибка теперь разрешилась сама, я не могу проверить это сейчас. Если он вернется, я все равно попробую. Но почему это имеет значение, когда все перечисленные зависимости указаны? Ни один из них на самом деле не скопирован на войну – MTCoster

+0

В банке EntityManger есть старая банда org.dom4j, поэтому, хотя вы можете получить ее от wildfly, она все равно не может загрузить. –

Смежные вопросы