Я новичок в J2EE так нежна ...Hibernate не может сериализовать объект на Wildfly из-за ошибки нагрузки SLF4J модуля с Maven
Я использую Wildfly (JBoss) 8.2.0.Final и У меня проблема с спящим режимом. Каждый раз, когда я пытаюсь десериализации объекта, я получаю сообщение об ошибке из спящего режима:
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.Slf4jLogger
from [Module "org.hibernate:main" from local module loader @4253c155
(finder: local module finder @8b9d578 (roots: C:\dev\wildfly-8.2.0.Final\modules,
C:\dev\wildfly-8.2.0.Final\modules\system\layers\base))]
Как я понимаю дикий мир SLF4J, wildfly имеет собственную реализацию и правильная вещь, чтобы сделать, это исключить все ссылки на что-нибудь другое чем org.slf4j из ваших зависимостей и включить slf4j-api в ваши зависимости. Я могу подтвердить, что в моей папке lib есть JAR slf4j-api, но я не знаю, как начать эту отладку. Обратите внимание, что другие аспекты приложения загружаются и регистрируются корректно, только когда я пытаюсь десериализовать что-то, что hibernate пытается выполнить сбой и исключение из этого исключения.
Ниже приведены некоторые выдержки из ПОМ:
<!-- logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Dependencies>org.slf4j org.apache.xerces services</Dependencies>
<Class-Path>xxx-myproject-${project.version}.jar</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
Это странно. Предполагается, что Wildfly имеет встроенную версию (модуль) slf4j-api. В Wildfly 10 он локализован в 'wildfly.10.1.0.Final/modules/system/layers/base/org/slf4j /'. Таким образом, вам не нужно добавлять зависимость с помощью компиляции области, предоставляемой только. Если он явно не исключает модуль в jboss-deployment-structure.xml в каталоге META-INF. – Dherik