web-dev-qa-db-ja.com

activemq-all-5.6.0.jarでの複数のSLF4Jバインディングエラー

Activemq-all-5.6.0にアップグレードすると

サーバーの起動中にこのエラーが発生します

SLF4J:クラスパスに複数のSLF4Jバインディングが含まれています

Activemq-all-5.5.1を使用している場合、この問題は発生しません。

チェックすると、activemq-all-5.6.0.jarとslf4j-log4j12-1.5.10.jarの両方にStaticLoggerBinder.classがあり、問題が発生していることがわかりました。

この問題のデバッグにご協力ください

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

前もって感謝します。

26
Jeenson Ephraim

ActiveMQの担当者は、 Maven Shade Plugin を使用してactivemq-all "ueber" jarを作成します。バージョン5.5.1と5.6.0の間のどこかで、org.slf4j:slf4j-log4j12依存関係が追加されました。したがって、問題が発生します。

残念ながら、シェードプラグインを使用しているため、activemqでexclusionsを使用することはできません-POMのすべての依存関係の定義。

代わりに、activemq-all依存関係を、必要なすべての個別の依存関係(もちろん、org.sl4j-log4j12のものを除く)に完全に置き換える必要があります。

次のページでは、必要なすべての依存関係について詳しく説明しています。 http://activemq.Apache.org/initial-configuration.html#InitialConfiguration-RequiredJARs

または、activemq-all jar(activemq-all pomのshadeプラグインの構成から取得)に含まれるすべての依存関係(必須およびオプション)のリストを次に示します。

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

お役に立てば幸いです。

40
DB5

Springを使用しているときにも同じ問題が発生しました。私を助けたのは、activemq-allの依存関係を次のように置き換えることでした。

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

これが誰かに役立つことを願っています...

10
jhas