子jarにslf4j LoggerとLoggerFactoryを使用しているときに問題が発生しています(CHILD.jarと仮定します)。 WebSphereに1つのEARを導入しています。 EAR構造はbelow-slf4j Logger、LoggerFactoryが子jarから実行時に動作しない
親の耳>
- META-INF
- プロジェクト固有の依存関係の瓶瓶
- コモンズ・ロギング1.0としてバンドル
- プロジェクトサブモジュールのようなものです。 4.jar
- common-logging-api-1.1.jar
- CHILD.jar
CHILD.jarのMANIFEST.MFでは、このCHILD.jarはいくつかの他のアプリケーションで使用されているため、他のアプリケーションでは同じslf4j実装者を使用できないため、CLASSPTHエントリは与えません。 1.0
ビルドJDK:1.7.0
内蔵することにより:C12560
アーカイバ-バージョン:神経叢アーカイバ
以下はMANIFESTファイル構造 -マニフェストのバージョンであります
作成者:Apache Maven 3.0.4
アプリケーションでは、すべてのjarをCHILD.jarが存在する同じ階層に保ちます。 デプロイ中に例外がスローされません。実行時に、それは我々がorg.slf4j.Loggerとorg.slf4j.LoggerFactoryを使用しているすべてのそれらのクラスににInvocationTargetException(およびNoClassDefFoundErrorが)を投げています。 これらのロガーのすべてのエントリをコメントアウトすると、アプリケーションは正常に動作しており、実行時に例外はスローされません。
のlog4j-1.2.13.jar子と同じ階層に存在するノート・我々は代わり org.slf4j.Loggerのorg.apache.log4j.Logger を使用する場合でも、コードが(実行時に動作しています。瓶)。
クエリ- slf4jは実装者を取得していませんか? 私はCHILD.jarと同じhierachyに含めなければなりませんか?
をノート・Iは、JCLオーバーSLF4Jジャーとlog4jのオーバーslf4j.jar含めてみました(と共通-logging.jarを削除)CHILD.jarと同じ階層にしているが、それはうまくいきませんでしたしてください。
ご協力いただきまして誠にありがとうございます。