2012-08-02 8 views
22

Als ich activemq-alle-5.6.0-Upgrademehrere SLF4J Bindungen Fehler bei activemq-all-5.6.0.jar

ich diesen Fehler Start während Server erhalten

SLF4J: Klassenpfad enthält mehrere SLF4J Bindungen

ich habe dieses Problem nicht, wenn ich finde, dass es sowohl StaticLoggerBinder.class mit activemq-alle-5.5.1

beim Check-in activemq-all-5.6.0.jar und slf4j-log4j12 -1.5.10.jar, die das Problem verursacht

Bitte Hilfe bei der Fehlersuche dieses Problems

Mein pom.xml als

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

Die aktive mq Abhängigkeit ist wie diese

alte Version 5.5.1 (Dies funktioniert)

folgt ist

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

Neue Version 5.6.0 (Dies gibt den Fehler)

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

Vielen Dank im Voraus.

Antwort

37

Die ActiveMQ-Jungs verwenden die Maven Shade Plugin, um das activemq-all "über" jar zu erstellen. Irgendwo zwischen Version 5.5.1 und 5.6.0 haben sie die Abhängigkeit org.slf4j: slf4j-log4j12 hinzugefügt - daher Ihr Problem.

Leider, weil sie das Schatten-Plugin verwendet haben, können Sie exclusions nicht in Ihrer ActiveMQ-All-Abhängigkeitsdefinition in Ihrem POM verwenden.

Stattdessen müssen Sie die activemq-all Abhängigkeit vollständig mit allen erforderlichen einzelnen Abhängigkeiten ersetzen (außer natürlich die org.sl4j-log4j12 one).

die folgende Seite Details all erforderlichen Abhängigkeiten: http://activemq.apache.org/initial-configuration.html#InitialConfiguration-RequiredJARs

Alternativ kann die folgende ist die Liste aller Abhängigkeiten (erforderlich und optional) im activemq-all Glas (von der Konfiguration der Schatten-Plugin aufgenommen in die 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 

Hoffe, dass hilft.

+0

Dank .. taht in viel hilft –

+8

understnding Warum in der Welt die Apache Jungs tun halten diese "Über" -Gläser machen?!? Ich habe gerade etwas von ApacheDS bekommen - alles einschließlich einer slf4j-Version, die mit einer anderen Version auf meinem Weg in Konflikt steht. Ich sollte hinzufügen, dass der Spring-ldap-Test ApacheDS-all als eine Abhängigkeit enthält, was bedeutet, dass wenn ich Spring-ldap-test zu meinem Spring-Boot-Projekt hinzufüge, die App explodiert. Pfui. – Bane

4

Ich hatte das gleiche Problem bei der Verwendung von Spring. Was hat mir geholfen, wurde die Abhängigkeit von activemq-alle ersetzen mit:

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

Hope this jemand helfen ...

Verwandte Themen