JBossに付属のものではなく、アプリケーションからlibsを読み込もうとする際に問題が発生しています。JBOSS 5.1.0 GA ClassLoaderの設定方法
私は自分のアプリケーションの最新かつ最高のSLF4Jを使用するようにしようとしていますし、そうすることで、私は次のメッセージを取得しています:私のアプリケーションで
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [vfszip:/C:/devtools/workspace/g2/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1302541739184/deploy/ecotrakEar.ear/ecotrak.war/WEB-INF/lib/slf4j-log4j12-1.6.1.jar/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [vfszip:/C:/devtools/jboss-5.1.0.GA/common/lib/slf4j-jboss-logging.jar/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
私は私のWAR libにある以下のjarファイルを持っていますディレクトリ:
- 7月ツーSLF4J-1.6.1.jar
- SLF4J-API-1.6.1.jar
- SLF4J-log4j12-1.6.1.jar
私のプロジェクトは、WAR付きのEARとして配備されています。すべてのライブラリはWAR内にあります。
いくつかの調査に基づいて、JBoss 5.1ではjboss-classloading.xmlファイルを作成することが推奨されています。
<classloading xmlns="urn:jboss:classloading:1.0"
name="ecotrak.ear"
domain="ecotrak.ear"
export-all="NON_EMPTY"
import-all="true"
parent-first="false">
</classloading>
これは、EARファイルが最初にロードされることを示しています。
11:18:07,949 ERROR [[/ecotrak]] Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.trace(SLF4JLocationAwareLog.java:107)
持つために正しい方法です何:私は、起動ログに次のエラーを取得しています。このような構成と
<classloading xmlns="urn:jboss:classloading:1.0"
name="ecotrak.war"
domain="ecotrak.war"
parent-domain="ecotrak.ear"
top-level-classloader="true"
export-all="NON_EMPTY"
import-all="true"
parent-first="true">
</classloading>
:
は、私も自分のWARのための1つを作成しました私のプロジェクトのjarファイルはJBossの前にロードされますか?