一尘不染

Java SLF4J:无法加载类“ org.slf4j.impl.StaticLoggerBinder”

java

我的应用程序将同时部署在tcServer和WebSphere 6.1上。此应用程序使用ehCache,因此需要slf4j作为依赖项。结果,我已将slf4j-api.jar(1.6)jar添加到我的war文件包中。

该应用程序在tcServer中工作正常,但以下错误除外:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

但是,当我在WebSphere中部署时,会得到一个java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder

还伴随着 Failed to load class "org.slf4j.impl.StaticMDCBinder"

我已经检查了两个应用服务器的类路径,没有其他的slf4j jar。

有谁知道这里可能会发生什么?


阅读 1537

收藏
2020-03-08

共1个答案

一尘不染

我对WebSphere 6.1有同样的问题。正如Ceki所指出的,WebSphere正在使用大量的jars,其中之一是指向较旧版本的slf4j。

仅当slf4j -1.6+时才会发生No-Op后备,因此任何早于该版本的内容都会引发异常并中止你的部署。

SLf4J站点中有一个文档可解决此问题。我遵循了这一点,并将其添加slf4j-simple-1.6.1.jar到我的应用程序中slf4j-api-1.6.1.jar

这解决了我的问题。希望它对遇到此问题的其他人有所帮助。

2020-03-08