gpt4 book ai didi

java - 由于 Maven 的 SLF4J 模块加载错误,Hibernate 无法在 Wildfly 上序列化对象

转载 作者:行者123 更新时间:2023-11-30 03:07:52 27 4
gpt4 key购买 nike

我对 J2EE 还很陌生,所以要温柔一点...

我正在使用 Wildfly (JBOSS) 8.2.0.Final,但我遇到了 hibernate 问题。每次我尝试反序列化一个对象时,我都会从 hibernate 收到错误:

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 文件夹中确实有 slf4j-api JAR,但我不知道如何开始调试它。请注意,应用程序的其他方面正在加载并正确记录,只有当我尝试反序列化 hibernate 尝试记录的内容并因此异常而失败时。

以下是 pom 的一些摘录:

<!-- 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>

最佳答案

当前正在下载的slf4j与当前的Hibernate版本不匹配。您尝试将 slf4j 现有依赖项替换为以下依赖项,或者在 Maven 依赖项中提供特定版本。

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>

关于java - 由于 Maven 的 SLF4J 模块加载错误,Hibernate 无法在 Wildfly 上序列化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34304334/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com