7

スプリング フレームワーク スロー

Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
    at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159)
    at org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:454)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:392)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)

どういう理由ですか?

4

3 に答える 3

8

理由は、追加されたライブラリのバージョンが間違っているためです (バージョンの競合)。

の javadocのバージョンを調べslf4jて、このメソッドが存在するバージョンを調べてみてください。

于 2011-03-23T10:07:10.483 に答える
2

OSX を実行している場合、次のファイルが Java 拡張機能として含まれていることが原因であることがわかります。

/ライブラリ/Java/拡張機能/slf4j-api-1.5.8.jar

/ライブラリ/Java/拡張機能/slf4j-log4j12-1.5.8.jar

これらは、アプリケーション クラスローダの前に拡張クラスローダによってロードされるため、最初に解決されます。

これらがなぜそこにあるのか、いつ追加されたのかはわかりませんが、これはOSXと昨年にしか見たことがありません。これは、Java 6で導入されたことを示唆している可能性があります.

ファイルを削除または移動して問題を回避できますが、ファイルに依存するアプリケーションが存在する可能性があります。

于 2011-04-14T17:16:07.280 に答える
1

クラスパスでクラスを 2 回行っている可能性があります。

クラスパスでオカレンスを確認してください。

于 2011-03-23T10:20:12.650 に答える