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:
- Making all dependencies provided
- Adding
dom4j
to my dependencies (кажется ненужным, так какgradle dependencies
показывает, как ребенка несколько библиотек спящего режима) - Ensure there is only one
dom4j
jar in the classpath (нет библиотеки в моей войне вообще)
, а также данные из других источников:
- Adding
Dependencies: org.dom4j
to MANIFEST.MF - Adding
jboss-deployment-structure.xml
with the following content:
<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). Для справки, тесты соединения для моего источника данных через консоль администратора успешны, и сведения о подключении все правильно, насколько мне известно.
У вас есть проблемы с загрузчиком классов – Jens
@Jens Я не делаю какой-либо сам загрузки классов, хотя я знаю, что WildFly находится в процессе развертывания. Не могли бы вы рассказать о том, где может возникнуть проблема? – MTCoster
В jboss имеется более одного загрузчика классов. Итак, похоже, что у вас есть dom4j jar несколько раз на разных загрузчиках классов. – Jens