maven - Error de enlaces SLF4J mĂșltiples con activemq-all-5.6.0.jar
(2)
Cuando actualizo a activemq-all-5.6.0
Recibo este error durante el inicio del servidor
SLF4J: la ruta de clases contiene varios enlaces SLF4J
No tengo este problema cuando uso activemq-all-5.5.1
Al verificarlo, encuentro que existe StaticLoggerBinder.class tanto en activemq-all-5.6.0.jar como en slf4j-log4j12-1.5.10.jar lo que está causando el problema
Por favor, ayuda en la depuración de 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 activa es así.
Versión anterior 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 por adelantado.
Los chicos de ActiveMQ usan el Complemento de sombra de Maven para crear el contenedor 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, debido a que utilizaron el complemento de sombra, 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, org.sl4j-log4j12).
La siguiente página detalla todas las dependencias requeridas: http://activemq.apache.org/initial-configuration.html#InitialConfiguration-RequiredJARs
Alternativamente, la siguiente es la lista de todas las dependencias (requeridas y opcionales) incluidas en el archivo activemq-all jar (tomada de la configuración del complemento de sombra en 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
Espero que ayude.
Tuve el mismo problema al usar Spring. Lo que me ayudó fue reemplazar la dependencia de activemq-all con:
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>5.14.3</version>
</dependency>
Espero que esto ayude a cualquiera ...