Multiple SLF4J bindings cause error?(多个 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线程主"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;
这是我依赖项的相关部分:网络.lightbody.bmpbrowsermob 代理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(可能使用更高版本),如果您的类路径中有几个不同版本的 jar.
- 有时可能无法排除多个 slf4j jar,因为它们可能会被您的类路径上的其他 jar 内部使用.这些依赖的 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 绑定会导致错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:多个 SLF4J 绑定会导致错误?


- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01