2012-08-02 20 views
22

Cuando actualizo a activemq-todas-5.6.0varios enlaces de error con SLF4J activemq-all-5.6.0.jar

consigo este error durante el inicio del servidor

SLF4J: Vía de acceso contiene múltiples SLF4J encuadernaciones

no tengo este problema cuando se utiliza activemq-todas-5.5.1

en el registro me parece que hay StaticLoggerBinder.class tanto en activemq-all-5.6.0.jar y slf4j-log4j12 -1.5.10.jar que está causando el problema

favor? Ayudan para depurar este problema

Mi pom.xml es el siguiente

<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 dependencia mq activo es como esto

vieja versión 5.5.1 (Esto funciona)

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

Nueva Versión 5.6.0 (Esto da el error)

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

Gracias de antemano.

Respuesta

37

Los chicos de ActiveMQ usan el Maven Shade Plugin para crear el jar de activemq-all "ueber". En algún lugar entre la versión 5.5.1 y 5.6.0 agregaron la dependencia org.slf4j: slf4j-log4j12 - de ahí su problema.

Desafortunadamente, ya que utilizaron el plugin de sombreado no puede usar exclusions en su definición de dependencia activemq-all en su POM.

En su lugar, deberá reemplazar completamente la dependencia activemq-all con todas las dependencias individuales requeridas (excepto, por supuesto, la org.sl4j-log4j12).

Los siguientes detalles de la página todas las dependencias necesarias: http://activemq.apache.org/initial-configuration.html#InitialConfiguration-RequiredJARs

Alternativamente, la siguiente es la lista de todas las dependencias (requerido y opcional) incluidos en el activemq-todo tarro (tomado de la configuración del plugin sombra en el pom activomq-todo):

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 

Espero que ayude.

+0

Gracias .. taht ayuda mucho en understnding –

+8

¿Por qué en el mundo lo hacen los chicos mantienen Apache haciendo estos frascos "ueber"? Acabo de recibir un poco de ApacheDS, incluyendo una versión de slf4j que entra en conflicto con otra versión de mi ruta. Debo añadir que spring-ldap-test incluye ApacheDS, todo como una dependencia, lo que significa que cuando agregue spring-ldap-test a mi proyecto de arranque de primavera, la aplicación explota. Ugh. – Bane

4

Tuve el mismo problema al usar Spring. Lo que me ayudó fue la sustitución de la dependencia de activemq -todos con:

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

Esperamos que esto ayude a nadie ...

Cuestiones relacionadas