多个SLF4J绑定会导致错误? [英] Multiple SLF4J bindings cause error?

查看:1165
本文介绍了多个SLF4J绑定会导致错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a problem with my dependency tree and multiple SLF4J binding. What I found out so far is that usually this only causes a warning but in my case it seems to prevent my program from running: These are the exceptions I get:


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-log4j12/1.6.1/slf4j中找到绑定-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J:参见 http://www.slf4j.org/codes.html#multiple_bindings 获得解释。
SLF4J:slf4j-api 1.6.x(或更高版本)与此绑定不兼容。
SLF4J:您的绑定是1.5.5或更早版本。
SLF4J:将绑定升级到1.6.x版。或2.0.x
线程main中的异常java.lang.NoSuchMethodError:org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg / slf4j / impl / StaticLoggerBinder;

SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [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: Found binding in [jar:file:/C:/Users/FischerNi/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: slf4j-api 1.6.x (or later) is incompatible with this binding. SLF4J: Your binding is version 1.5.5 or earlier. SLF4J: Upgrade your binding to version 1.6.x. or 2.0.x Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;

这是我的依赖项的相关部分:


net.lightbody.bmp
browsermob-proxy
2.0-beta-8

and this is the relevant piece of my dependencies: 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>

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

Can somebody please tell me how to resolve this issue?

推荐答案

这有几个解决方案:


  • 如果你的类路径上有不同的版本,请确保只包含一个slf4j jar (可能包含更高版本)。

  • 有时候可能无法排除多个slf4j罐子,因为它们可能被内部的其他罐子使用,这些罐子在您的类路径上。这些依赖jar可能会引用slf4j jar的不同版本,这会导致应用程序失败。在这种情况下,确保在使用SLF4J jar的其他jar之前添加了更高版本的SLF4j的jar 。这将确保您的java程序将获取最新版本的SLF4J,这显然是向后兼容的。

  • Make sure that you include only one slf4j jar(probably with the higher version) if you have couple of them with different versions on your class path.
  • Sometimes it may not be possible to exclude multiple slf4j jars, as they may be used by other jars internally, which are on your class path. These dependent jar may refer to different versions of slf4j jars which causes your application to fail. In such cases, make sure that you have the jar with higher version of SLF4j added before other jar using SLF4J jars. This will make sure that your java program will pick up the latest version of the SLF4J which obviously is backward compatible.

这篇关于多个SLF4J绑定会导致错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆