でgradleに矛盾しています。私たちは、storm 1.0.1とelasticsearch 5.2でgradleのsl4jバージョンの競合に直面しています。sl4jのバージョンは、Storm 1.0.1とelasticsearch 5.2
ElasticSearchはlog4j-to-slf4jブリッジが必要なので、希望のロガーを使用できることがわかりました。 ここでは、logback-classicをslf4jで使用しようとしています。
依存関係は以下のように定義されています。私は嵐のコアからSLF4Jを除外すると、以下のように後で同じを追加しようとしましたこれを解決するには
dependencies {
compile 'org.slf4j:slf4j-api:1.7.21'
compile 'org.apache.logging.log4j:log4j-to-slf4j:2.6.2'
compile 'ch.qos.logback:logback-classic:1.1.10'
provided ('org.apache.storm:storm-core:1.0.1') {
exclude(group: 'org.slf4j', module: 'slf4j-api')
}
compile 'org.elasticsearch:elasticsearch:5.2.0'
compile 'org.elasticsearch.client:x-pack-transport:5.2.0'
}
:
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails dependencyResolveDetails ->
final requestedDependency = dependencyResolveDetails.requested
if (requestedDependency.group == 'org.slf4j' && requestedDependency.name == 'slf4j-api') {
requestedDependency.setVersion "1.7.7"
}
}
}
}
しかし、トポロジーがあるときエラーが表示されました。 SLF4J:クラスパスには複数のSLF4Jバインディングが含まれています。 SLF4J:[jar:file:/Users/gauthamr05/Documents/Apps/Storm/apache-storm-1.0.1/lib/log4j-slf4j-impl-2.1.jar!/ org/slf4j/impl/StaticLoggerBinderのバインディングが見つかりました。 .class] SLF4J:[jar:file:/Users/gauthamr05/Documents/workspace/xyz_app/build/libs/FullIndexing.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:http://www.slf4j.org/codes.html#multiple_bindingsを参照してください。説明。 SLF4J:org.apache.logging.log4j.spi.LoggerRegistry.getOrCreateInnerMapにおけるによってjava.lang.StackOverflowError 実際の結合は、タイプのものである[org.apache.logging.slf4j.Log4jLoggerFactory]スレッド内 例外 "メイン"(LoggerRegistry.java :140) at org.apache.logging.log4j.spi.LoggerRegistry.hasLogger(LoggerRegistry.java:154) at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:38) at org.apache .logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:37) at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:29) at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger (AbstractLoggerAdapter.java:47) at org.apache.logging.slf4j.Log4jLogg erFactory.getLogger org.slf4j.LoggerFactory.getLoggerで(Log4jLoggerFactory.java:29) (LoggerFactory.java:277)