当前位置: 首页 > 知识库问答 >
问题:

无法解析"SLF4J:加载类失败"org.slf4j.impl.StaticLoggerBinder"。

隆谦
2023-03-14

我想使用Eclipse Indigo运行maven项目,但当我运行项目Run As-

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.

我对此进行了研究,后来意识到slf4j依赖也缺失了。我下载了slf4j-1.7.5.zip并将以下文件提取到C:\Program files\Java\jdk1.7.0\u 17\lib中:

slf4j-simple-1.7.5.jarslf4j-api-1.7.5.jarlog4j-over-slf4j-1.7.5.jar

并在POM. xml中添加依赖项,现在pom.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.beginningee6.book</groupId>
    <artifactId>chapter10</artifactId>
    <packaging>war</packaging>
    <version>2.0</version>
    <name>Chapter 10 - JSF</name>

    <parent>
        <groupId>org.beginningee6.book</groupId>
        <artifactId>chapters</artifactId>
        <version>2.0</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>javax.persistence</artifactId>
            <version>${javax.persistence-version}</version>
        </dependency>
        <dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version>1.7.5</version>
   <scope>compile</scope>
</dependency>

        <dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-api</artifactId>
   <version>1.7.5</version>
   <scope>compile</scope>
</dependency>
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>log4j-over-slf4j</artifactId>
   <version>1.7.5</version>
   <scope>compile</scope>
</dependency>

        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>${eclipselink-version}</version>
        </dependency>
        <dependency>
            <groupId>javax.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>${jsf-version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.ejb</artifactId>
            <version>${glassfish-version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derbyclient</artifactId>
            <version>10.6.2.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>10.6.2.1</version>
            <!--<scope>test</scope>-->
        </dependency>
        <dependency>
            <groupId>org.glassfish.extras</groupId>
            <artifactId>glassfish-embedded-all</artifactId>
            <version>3.1.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

最后,我更新了项目并再次运行它,仍然出现了相同的消息。

任何帮助将不胜感激。

共有2个答案

厉坚
2023-03-14

此警告消息仅影响Maven构建过程!它不会影响您的应用程序!因此,如果您想驳回此警告,您必须强制Maven(可能集成到Eclipse中)使用SLF4J。

楚勇
2023-03-14

首先,只要slf4j api与log4j-over-slf4j依赖捆绑在一起,就应该删除slf4j api的依赖关系。检查依赖层次选项卡(在pom.xml中),您将在log4j-over-slf4j下看到slf4j api。

此外,无需在lib文件夹中添加任何这些文件(slf4j-simple-1.7.5.jar、slf4j-api-1.7.5.jar和log4j-over-slf4j-1.7.5.jar),只要您在pom.xml.Maven会自动添加pom.xml中列出的每个依赖项以及系统类路径中应用程序所需的所有jar。

<dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <version></version>
       <scope>compile</scope>
</dependency>

其次,只要您提供了依赖项,并且仍然得到了SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”,这意味着您将面临m2e错误。

Eclipse Juno和Indigo在使用捆绑的maven版本(m2e)时,没有抑制消息SLF4J:未能加载类“org.slf4j.impl.StaticLoggerBinder”。这种行为存在于m2e版本1.1.0.20120530-0009及以后。

虽然,这表示为错误,但您的日志将正常保存。在修复此错误之前,突出显示的错误仍然存在。更多信息请访问m2e支持站点。

当前可用的解决方案是使用外部maven版本,而不是Eclipse的捆绑版本。你可以在下面的问题中找到关于这个解决方案和关于这个bug的更多细节,我相信这个问题描述了你面临的相同问题。

SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。错误

 类似资料:
  • 问题内容: 我的应用程序将同时部署在tcServer和WebSphere 6.1上。此应用程序使用ehCache,因此需要slf4j作为依赖项。结果,我已将slf4j-api.jar(1.6)jar添加到我的war文件包中。 该应用程序在tcServer中工作正常,但以下错误除外: 但是,当我在WebSphere中部署时,会得到一个。 还伴随着 我已经检查了两个应用服务器的类路径,没有其他的slf

  • 关于Eclipse IDE(Indigo、Juno和Kepler(32和64位版本)) 平台:Windows、Ubuntu、Mac M2E版本:1.1.0.20120530-0009,1.2.0.20120903-1050,1.3.0.20130129-0926, 1.4.0.20130601-0317 上面的错误是在将m2e更新到1.1版之后出现的。通过删除M2E1.1并回滚到M2E1.0,一切

  • 运行maven项目时,在Eclipse Juno 4.2上出现此错误。 我没有使用slf4j进行日志记录。实际上我不使用任何日志记录。 我做错了什么。? 我pom中唯一的依赖关系.xml 编辑: mvn依赖:树 编辑2: 我创建了一个新的Maven项目 编辑3: 我在 Eclipse 之外运行该项目,但没有错误指示。

  • 我对SLF4J有依赖性。我得到这个错误: 这是我的maven条目: 问题出在哪里? 编辑:没有log4j依赖项,我得到以下异常 编辑2:这是我得到的一个例子

  • 问题内容: 我对SLF4J有依赖性。我收到此错误: 这是我的Maven条目: 问题出在哪里? 编辑: 没有log4j依赖性我得到以下异常 EDIT2 :这是我得到的示例树 问题答案: 我假设您正在使用Eclipse作为开发环境。 使用捆绑的Maven版本(m2e)时,Eclipse Juno,Indigo和Kepler不会抑制消息SLF4J:无法加载类“ org.slf4j.impl.Static

  • 请参阅下面我使用的pom.xml: 无法解析SLF4J:类路径包含多个SLF4J绑定。无法解析SLF4J:类路径包含多个SLF4J绑定。无法解析SLF4J:类路径包含多个SLF4J绑定。无法解析SLF4J:类路径包含多个SLF4J绑定。无法解析SLF4J:类路径包含多个SLF4J绑定。无法解析SLF4J:类路径包含多个SLF4J绑定。无法解析SLF4J:类路径包含多个SLF4J绑定。无法解析SLF