我正在尝试使用slf4j作为日志框架,将在wildfly 8.2上运行的应用迁移到jboss 7.2。但是,当我尝试在JBoss中进行部署时,出现以下错误:
原因:java.lang.LinkageError:链接失败 org / jboss / logging / Logger $ Level(模块 \“ deployment.backend-2.1.2.war \”(来自服务模块加载程序):加载程序 约束违反:加载程序(实例 org / jboss / modules / ModuleClassLoader)之前为 名称为\“ org / jboss / logging / Logger $ Level \”“}}}
的其他类型
当前的 jboss-deployment-结构:
this.mAddress = address;
this.mCity = city;
this.mState = state;
我找不到任何解决此错误的解决方案,运行 <exclusions>
<module name="org.apache.log4j" />
<module name="org.slf4j" />
<module name='org.slf4j.impl' />
<module name="org.apache.commons.logging" />
<module name="org.log4j" />
<module name="org.jboss.logging" />
</exclusions>
,从Hibernate 4.3.11.Final导入了org.jboss.logging,那么我的休眠状态的pom现在看起来是:
mvn dependency:tree
但是同样的错误仍然存在。
答案 0 :(得分:0)
此问题与以下事实有关:在配置文件standalone.xml中,您两次创建或导入了同一记录器,因此该级别也不应重复。
Caused by: java.lang.LinkageError: Failed to link org/jboss/logging/Logger$Level (Module \"deployment.backend-2.1.2.war\" from Service Module Loader): loader constraint violation: loader (instance of org/jboss/modules/ModuleClassLoader) previously initiated loading for a different type with name \"org/jboss/logging/Logger$Level\""}}}
此外,请注意记录器配置上的标志use-parent-handlers,该标志将指示父处理程序是否应使用记录器信息。更多信息here