1

Maven プロジェクトで OpenSaml を使用しています。DefaultBootstrap クラスのバリエーションを使用して OpenSaml を初期化しようとすると、次のスタックトレースが表示されます。

    java.lang.NoSuchMethodError: org.slf4j.helpers.Util.report(Ljava/lang/String;)V
    org.apache.log4j.Log4jLoggerFactory.<clinit>(Log4jLoggerFactory.java:47)
    org.apache.log4j.LogManager.getLogger(LogManager.java:42)
    org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
    org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:103)
    org.opensaml.xml.XMLConfigurator.<init>(XMLConfigurator.java:56)
    org.opensaml.xml.XMLConfigurator.<init>(XMLConfigurator.java:73)

mvn dependency:tree を実行して、一致しないバージョンの SLF4J jar がどこからロードされているかを把握しようとしました。また、mvn.bat で -verbose オプションを Java に渡そうとしました。これらのオプションはどちらも役に立ちませんでした。pom.xml の依存関係を 1 つずつ削除しようとしました。繰り返しますが、運が悪いです。犯人のjarファイルを見つける方法や、このエラーを解決する方法について誰かが光を当てることができれば、私は感謝しています.

4

2 に答える 2

5

クラスパスに slf4j-api.jar バージョン 1.5.0 以前が含まれているのに対し、log4j-over-slf4j.jar のバージョンにはそれ以降のバージョンがあることに賭けます。

于 2013-04-08T13:00:16.763 に答える
0

同様の問題が発生しました。多くの調査とデバッグの後、log4j ライブラリには互換性がないことがわかりました。私のカスタム ビルド jar には、log4j-1.2.12 以降を必要とする hbase 非同期クライアントがありました。

于 2013-10-03T17:46:18.720 に答える