多个SLF4J绑定与activemq-all-5.6.0.jar出错

Jee*_*aim 26 activemq-classic slf4j maven

当我升级到activemq-all-5.6.0时

我在服务器启动时遇到此错误

SLF4J:类路径包含多个SLF4J绑定

使用activemq-all-5.5.1时我没有这个问题

在检查时,我发现在activemq-all-5.6.0.jar和slf4j-log4j12-1.5.10.jar中都存在StaticLoggerBinder.class,这导致了问题

请帮忙调试此问题

我的pom.xml如下

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.5.10</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>1.5.10</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.10</version>
    <scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

活动的mq依赖是这样的

旧版本5.5.1(此作品)

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-all</artifactId>
    <version>5.5.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

新版本5.6.0(这给出了错误)

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-all</artifactId>
    <version>5.6.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

提前致谢.

DB5*_*DB5 42

ActiveMQ人员使用Maven Shade插件创建activemq-all"ueber"jar.在版本5.5.1和5.6.0之间,他们添加了org.slf4j:slf4j-log4j12依赖 - 因此你的问题.

不幸的是,因为他们使用了shade插件,所以你不能exclusions在你的POM中的activemq-all依赖项定义中使用.

相反,您需要完全用所有必需的依赖项替换activemq-all依赖项(当然除了org.sl4j-log4j12之外).

以下页面详细介绍了所有必需的依赖项:http: //activemq.apache.org/initial-configuration.html#InitialConfiguration-RequiredJARs

或者,以下是activemq-all jar中包含的所有依赖项(必需和可选)的列表(取自activemq-all pom中的shade插件的配置):

org.apache.activemq:activemq-camel
org.apache.activemq:activemq-core
org.apache.activemq:activemq-console
org.apache.activemq:activemq-jaas
org.apache.activemq:activemq-optional
org.apache.activemq:kahadb
org.apache.geronimo.specs:geronimo-jms_1.1_spec
org.apache.geronimo.specs:geronimo-jta_1.0.1B_spec
org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec
org.apache.geronimo.specs:geronimo-annotation_1.0_spec
org.slf4j:slf4j-api
org.slf4j:slf4j-log4j12
log4j:log4j
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • 为什么世界上Apache的人一直在制作这些"ueber"罐子?!?我刚刚得到了ApacheDS,包括一个与我路径上的另一个版本冲突的slf4j版本.我应该补充一点,spring-ldap-test包含ApacheDS-all作为依赖项,这意味着当我将spring-ldap-test添加到我的spring-boot项目时,app会爆炸.啊. (11认同)

jha*_*has 10

使用Spring时我遇到了同样的问题.帮助我的是将activemq-all的依赖替换为:

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-spring</artifactId>
    <version>5.14.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

希望这会帮助任何人......