2017-06-16 5 views
-1

子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.Loggerorg.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と同じ階層にしているが、それはうまくいきませんでしたしてください。

ご協力いただきまして誠にありがとうございます。

答えて

0

jclまたはlog4jをslf4jの実装者として使用する場合は、slf4j-jcl.jarまたはslf4j-log4j.jarが必要です。

さらに、NoClassDefFoundErrorを取得するときは、完全なスタックトレースを実行する必要があります。通常、それは他のいくつかの例外によって引き起こされます。

関連する問題