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

多个SLF4J绑定导致错误?

常茂
2023-03-14

我的依赖树和多个SLF4J绑定有问题。到目前为止,我发现这通常只会引起一个警告,但在我的情况下,它似乎会阻止我的程序运行:以下是我得到的例外情况:

SLF4J:类路径包含多个SLF4J绑定。slf4j:在[jar:file:/c:/users/fischerni/.m2/repository/org/slf4j/slf4j-jdk14/1.5.3/slf4j-jdk14-1.5.3.jar!/org/slf4j/impl/staticloggerbinder.class]中找到绑定slf4j:在[jar:file:/c:/users/fischerni/.m2/repository/org/slf4j/slf4j/impl/staticloggerbinder.class]中找到绑定slf4j:参见http://www.slf4j:SLF4J:slf4j-api 1.6.x(或更高版本)与此绑定不兼容。SLF4J:您的绑定是1.5.5或更早版本。SLF4J:将绑定升级到1.6.x版本。线程“main”java.lang.NoSuchMethoderRror中的或2.0.x异常:org.slf4j.impl.StaticloggerBinder.GetSingleton()lorg/slf4j/impl/StaticloggerBinder;

这是我的依赖项的相关部分:net.lightbody.bmp browsermob-proxy 2.0-beta-8

    <!-- LOGGING DEPENDENCIES - LOG4J -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </dependency>

有人能告诉我如何解决这个问题吗?

共有2个答案

凤柏
2023-03-14

Fateh的回答是正确的,我不得不花一些时间来弄清楚如何使用它,这就是为什么我添加了一个完整的解决方案:

>

  • 运行MVN依赖项:树

    找出哪个库正在使用SLF4J:

    [INFO] +- net.lightbody.bmp:browsermob-proxy:jar:2.0-beta-8:compile
    [INFO] |  +- org.slf4j:slf4j-jdk14:jar:1.7.25:compile
    

    从maven中排除它,如下所示:

         <dependency>
            <groupId>net.lightbody.bmp</groupId>
            <artifactId>browsermob-proxy</artifactId>
            <version>2.0.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-jdk14</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    

  • 朱兴安
    2023-03-14

    有几种解决方案:

    • 如果类路径上有两个不同版本的slf4j jar,请确保只包含一个slf4j jar(可能包含较高版本)。
    • 有时可能无法排除多个slf4j JAR,因为它们可能被您的类路径上的内部其他JAR使用。这些从属jar可能引用了导致应用程序失败的slf4j jar的不同版本。在这种情况下,请确保在使用SLF4j jar的其他jar之前添加了SLF4j更高版本的jar。这将确保您的Java程序将获得SLF4J的最新版本,该版本显然是向后兼容的。
     类似资料:
    • 我正在使用JBoss6,但在尝试运行我的应用程序时遇到一个多版本错误: 错误[STDERR]SLF4J:类路径包含多个SLF4J绑定。 错误[STDERR]slf4j:在[vfs:/c:/jboss-6.0.0.final/common/lib/slf4j-jboss-logmanager.jar/org/slf4j/impl/staticloggerbinder.class]中找到绑定 错误[S

    • 当我正在学习hadoop教程(http://hortonworks.com/hadoop-tutorial/hello-world-an-induction-to-hadoop-hcatalog-hive-and-pig/)时,我无法使用下载的数据文件创建表,因为我收到以下错误消息: 创建表时HCatClient错误:{“statement”:“使用default;create table nys

    • 我在尝试安装MAVEN时遇到了这个错误。我尝试了排除,但不确定在pom文件中包含的位置。让我在我的pom文件中应该包括怎样和什么排除标记。我还附加了我的pom文件片段,其中包括排除'SLF4J:Class path包含多个SLF4J绑定。 SLF4J:在[jar:file:/c:/users/147188/.m2/repository/ch/qos/logback/logback-classic/

    • 这可能是一个重复的问题,但我无法弄清楚绑定冲突在哪里。我有我的服务,当我运行它时,我得到了这个错误: 这是输出 显然,问题在于<code>logback</code>仍然在类路径中,但我在输出中找不到它,所以我不知道问题出在哪里。 你能发现错误吗?我将感谢你的帮助 这仅在我将服务器作为Spring Boot Application运行时发生。如果我将其作为java应用程序运行,错误就消失了....

    • 我正在尝试运行gradle从IntelliJ IDEA生成的战争。 tomcat实例运行时的输出:

    • 当我尝试在eclipse中运行junit测试时,出现以下错误: SLF4J:类路径包含多个SLF4J绑定。SLF4J:在[jar: file:/C:/User/MaximilianBecker/. m2/repository/uk/org/lidalia/slf4j-test/1.2.0/slf4j-test-1.2.0.jar中找到绑定! /org/slf4j/impl/StaticLogger