2012-08-02 4 views
22

Quando aggiorno a activemq-tutti-5.6.0più associazioni SLF4J errore con activemq-all-5.6.0.jar

ottengo questo errore durante l'avvio del server

SLF4J: percorso classe contiene SLF4J multipla attacchi

io non ho questo problema quando si utilizza activemq-tutti-5.5.1

il check trovo che ci StaticLoggerBinder.class sia activemq-all-5.6.0.jar e slf4j-log4j12 -1.5.10.jar che causa il problema

Si prega di fare aiuto per correggere questo problema

mio pom.xml è la seguente

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

La dipendenza mq attiva è così

vecchia versione 5.5.1 (Questo funziona)

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

Nuova versione 5.6.0 (riporta l'errore)

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

Grazie in anticipo.

risposta

37

Gli utenti di ActiveMQ utilizzano Maven Shade Plugin per creare il jar "ueber" di activemq-all. Da qualche parte tra la versione 5.5.1 e 5.6.0 hanno aggiunto la dipendenza org.slf4j: slf4j-log4j12 - da qui il tuo problema.

Sfortunatamente perché hanno usato il plugin per l'ombra non è possibile utilizzare exclusions nella definizione di dipendenza activemq-all nel tuo POM.

Invece sarà necessario sostituire completamente la dipendenza activemq-all con tutte le dipendenze individuali richieste (eccetto ovviamente quella org.sl4j-log4j12).

i seguenti dati di pagina tutte le dipendenze richieste: http://activemq.apache.org/initial-configuration.html#InitialConfiguration-RequiredJARs

In alternativa, il seguente è la lista di tutte le dipendenze (obbligatori e facoltativi) incluso nel vaso activemq-tutto (prese dalla configurazione del plugin ombra the 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 

Spero che questo aiuti.

+0

Thanks .. taht aiuta molto nel understnding –

+8

Perché nel mondo fanno i ragazzi continuano a Apache facendo questi vasi "ueber"?!? Ho appena ricevuto un po 'da ApacheDS, tutto incluso una versione di slf4j che è in conflitto con un'altra versione sul mio percorso. Dovrei aggiungere, spring-ldap-test include ApacheDS-tutto come dipendenza, il che significa che quando aggiungo spring-ldap-test al mio progetto di avvio a molla, l'app esplode. Ugh. – Bane

4

Ho avuto lo stesso problema durante l'utilizzo di Spring. Quello che mi ha aiutato a stavo sostituendo la dipendenza di ActiveMQ-tutte con:

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

Spero che questo vi aiuterà a nessuno ...