2012-08-02 62 views
22

當我升級到ActiveMQ的,全5.6.0多個SLF4J綁定錯誤和ActiveMQ,全5.6.0.jar

我在服務器啓動時出現此錯誤

SLF4J:類路徑中包含多個SLF4J綁定

使用ActiveMQ的 - 全5.5.1

當在檢查我沒有這個問題,我也發現,有StaticLoggerBinder.class兩個ActiveMQ的,全5.6.0.jar和SLF4J-log4j12 -1.5.10.jar這是造成問題的原因

請你幫助調試這個問題

我的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> 

主動MQ依賴是這樣

舊版本5.5.1(這工作)

<dependency> 
    <groupId>org.apache.activemq</groupId> 
    <artifactId>activemq-all</artifactId> 
    <version>5.5.1</version> 
</dependency> 

新版本5.6.0(給出錯誤)

<dependency> 
    <groupId>org.apache.activemq</groupId> 
    <artifactId>activemq-all</artifactId> 
    <version>5.6.0</version> 
</dependency> 

在此先感謝。

回答

37

的ActiveMQ的人使用Maven Shade Plugin創建ActiveMQ的所有「ueber」罐子。在版本5.5.1和5.6.0之間,他們添加了org.slf4j:slf4j-log4j12依賴關係 - 因此是您的問題。

不幸的是,因爲他們使用的遮陽插件,你不能在你的ActiveMQ,所有依賴定義你的POM使用exclusions

相反,你將需要與所有需要的個體的依賴(當然除了在org.sl4j-log4j12之一)完全替代的ActiveMQ,所有的依賴。

以下頁面細節所有所需依賴關係: http://activemq.apache.org/initial-configuration.html#InitialConfiguration-RequiredJARs

可選地,以下是所有依賴的列表(必需和可選)包括在所述的ActiveMQ-所有jar(從簾插件的配置中的取activemq-all pom):

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 

希望有所幫助。

+0

謝謝.. taht有很大幫助understnding – 2012-08-02 22:32:04

+8

爲什麼在世界上做Apache的傢伙保持製作這些「超級」罐子?!?我剛剛得到了ApacheDS的一切 - 包括一個slf4j版本,與我的路徑上的另一個版本衝突。我應該補充說,spring-ldap-test包含了ApacheDS--所有這些都是依賴項,這意味着當我在spring-boot項目中添加spring-ldap-test時,應用程序就會崩潰。啊。 – Bane 2014-04-02 21:32:08

4

我在使用Spring時遇到了同樣的問題。什麼幫助我被替換的ActiveMQ,所有的依賴性:

<dependency> 
    <groupId>org.apache.activemq</groupId> 
    <artifactId>activemq-spring</artifactId> 
    <version>5.14.3</version> 
</dependency> 

希望這將幫助任何人......