NoClassDefFound org / slf4j / impl / staticloggerbinder

时间:2012-07-13 05:49:15

标签: hibernate noclassdeffounderror

在struts 1.2.7和liferay 6.0.6中使用ham删除应用程序我正在使用hibernate3,hibernate-annotations jar文件,当我在jBOSS中部署war文件时它会给我这个错误 NoClassDefFound org / slf4j / impl / staticloggerbinder ,删除此错误我从 [LIFERAY_HOME] \ jboss-5.1.0 \ server \ default \ deploy \ ROOT.war \ WEB-INF \ lib 复制了slf4j-log4j12到我的

服务器defualt lib即 [LIFERAY_HOME] \ jboss-5.1.0 \ server \ default \ lib 然后错误被删除但是其他一些错误,即类路径包含多个SLF4J绑定 这两个地点是 1)[LIFERAY_HOME] \的jboss-5.1.0 \服务器\默认\部署\ ROOT.war \ WEB-INF \ lib中 2)[LIFERAY_HOME] \ jboss-5.1.0 \ server \ default \ lib

现在真的很困惑,发生了什么。什么是这个错误NoClassDefFound org / slf4j / impl / staticloggerbinder我在google上干扰但是它的hibernate3相关错误我关心的是如何去除这个错误以及这个类所做的staticloggerbinder是将它重新发布到hibernate还是别的什么

1 个答案:

答案 0 :(得分:0)

您收到此错误是因为log4j是从两个不同的类加载器加载的,来自ROOT(Liferay)和共享类加载器(\ server \ default \ lib)。您有两种替代解决方案:

  1. 移动slf4j-logXXX.jar& log4j.jar从ROOT /.../ lib到共享类加载器(\server\default\lib
  2. 设置环境变量log4j.ignore.TCL=true(忽略类加载器)