Подтвердить что ты не робот

Множественные привязки SLF4J Ошибка с activemq-all-5.6.0.jar

Когда я обновляюсь до activemq-all-5.6.0

Я получаю эту ошибку во время запуска сервера

SLF4J: путь класса содержит несколько привязок SLF4J

У меня нет этой проблемы при использовании activeemq-all-5.5.1

При проверке я обнаруживаю, что StaticLoggerBinder.class как в activeemq-all-5.6.0.jar, так и в slf4j-log4j12-1.5.10.jar, что вызывает проблему

Пожалуйста, помогите в отладке этой проблемы

Мой pom.xml выглядит следующим образом

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

Активная зависимость mq такова:

Старая версия 5.5.1 (это работает)

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

Новая версия 5.6.0 (Это дает ошибку)

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

Спасибо заранее.

4b9b3361

Ответ 1

Ребята из ActiveMQ используют Maven Shade Plugin, чтобы создать банку activemq-all "ueber". Где-то между версиями 5.5.1 и 5.6.0 они добавили зависимость org.slf4j: slf4j-log4j12 - следовательно, ваша проблема.

К сожалению, поскольку они использовали плагин с оттенками, вы не можете использовать exclusions в вашем определении зависимости activemq-all в вашем POM.

Вместо этого вам нужно будет полностью заменить зависимость activemq-all всеми необходимыми индивидуальными зависимостями (за исключением, конечно, org.sl4j-log4j12).

На следующей странице указаны все необходимые зависимости: http://activemq.apache.org/initial-configuration.html#InitialConfiguration-RequiredJARs

В качестве альтернативы, список всех зависимостей (обязательный и необязательный), включенных в банку activemq-all (взятый из конфигурации плагина тени в 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

Надеюсь, что это поможет.

Ответ 2

У меня была такая же проблема при использовании Spring. Что помогло мне заменить зависимость activemq-all:

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

Надеюсь, это поможет любому...