我的应用程序将部署在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。

同时伴有加载类“org.slf4j.impl.StaticMDCBinder”失败

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

有人知道这里会发生什么吗?


当前回答

我添加了这个依赖来解决这个问题:

https://mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.7.25

其他回答

有时我们应该看到来自SLF4J警告的说明:请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder以了解更多详细信息。

当在类路径上找不到合适的SLF4J绑定时,就会发生这种情况

您可以搜索此警告产生的原因。 将*slf4j-nop.jar、slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar或logback-classic.jar*中的一个jar添加到类路径中应该可以解决问题。

compile "org.slf4j:slf4j-simple:1.6.1"

例如,将上述代码添加到构建中。Gradle或maven项目的pom.xml的相应代码。

     <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.21</version>
    </dependency>

将上述依赖项放在pom.xml文件中

将文件slf4j-log4j12-1.6.4.jar放到类路径中就可以了。

这是给那些从谷歌搜索来到这里的人。

如果使用maven,只需添加以下内容

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

Or

   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.7.5</version>
   </dependency>
   <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
       <version>1.6.4</version>
   </dependency>

我通过添加这个库来解决它:slf4j-simple-1.7.25.jar 你可以在官方网站https://www.slf4j.org/download.html上下载