maven activemq slf4j

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