0

Spring MVCアプリケーションをSpring 3.1から4.3に、そしてHibernate 3.6から5.2にアップグレードしています。これをWildfly 8で実行します。依存関係はMavenによって管理されます。log4jを使用する必要があるときにjboss-loggingを使用するアプリケーション

Springでは、アプリケーションのクラスパスを調べ、適切なロギングフレームワークの選択を試みるcommons-loggingを使用します。私の場合、それは間違ったものを選んでいるようです。私は、私のpom.xmlにlog4jを含めて、jboss-loggingが存在しないことがわかる。

Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf 

をだから私は失敗したコモンズ・ロギングがどこかにそれを見つけ、それを使用しようとしている、私のプロジェクトでJBossのログを持っていますが、いないにもかかわらず:ここで私が得ているエラーメッセージがあります。いくつかの検索の後、私はWildbirdでjboss-logging-3.1.4.GA.jarを見つけました。

エラーの原因は、これがjboss-loggingの古いバージョンであることです。新しいjarファイルをサーバーに追加し、それを指すようにmodule.xmlを編集しました。エラーが消えました。これは、commons-loggingがサーバー上でjboss-loggingを見つけることを証明しています。

問題はjboss-loggingが欲しくないということです。私はlog4jが必要です。コモンズログを強制的にlog4jを使用し、サーバー上のものを無視するにはどうすればよいですか?

編集:私はまたI以来、再び古いjarファイルを指すようにmodule.xmlを変更

<add-logging-api-dependencies value="false"/> 
<use-deployment-logging-config value="false"/> 

私はリンクchrisharmをたどっ置くとstandalone.xmlファイルにこれらの行を追加しましたjbossが使用されていると、むしろエラーが表示されます。私は今、実行すると、私はこれを取得:今春は、JBoss-ログへのアクセス権を持っていないので

Caused by: java.lang.NoClassDefFoundError: org/jboss/logging/Logger 

これは、正しい方向への第一歩かもしれないが、まだいくつかの理由のためにそれを使用しようとしています。

答えて

1

https://docs.jboss.org/author/display/WFLY8/How+To#HowTo-HowdoIusemyownversionoflog4j%3F

あなたは/がlog4jののバージョンを含める必要があるなら、あなたは、次の2つの手順を実行する必要があります。

  1. アドオンログ-API-依存関係が属性を持つすべてのあなたの展開へのロギングの依存関係の追加を無効にし、使用-展開ロギング設定の属性を無効にするか、JBossの展開構造にロギングサブシステムを除外.xml。
  2. 次に、配備にlog4jライブラリを含める必要があります。

これは、デプロイメントのログインにのみ有効です。サーバーログは引き続きログサブシステム構成を使用します。

関連する問題