2

私は小さなJavaアプリケーションを書いていますが、log4jで問題が発生しています。これは、複数の独立したライブラリが同時に使用しようとしていることが原因のようです。

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.log4j.Logger.info(Ljava/lang/String;)V
    at twitter4j.internal.logging.Log4JLogger.info(Log4JLogger.java:85)
    at twitter4j.internal.logging.Logger.<clinit>(Logger.java:72)
    at twitter4j.http.BasicAuthorization.<clinit>(BasicAuthorization.java:43)
    at twitter4j.http.AuthorizationFactory.getBasicAuthorizationInstance(AuthorizationFactory.java:66)
    at twitter4j.TwitterStreamFactory.getInstance(TwitterStreamFactory.java:121)
    at org.voltdb.twitter.drivers.Collect.main(Collect.java:13)

私が使用している2つのライブラリは、Twitter4JVoltDBです。どちらもJARの形式です。どちらかを単独で使用する場合、この問題は発生しません。どちらもそれ自体で正常に動作します。

これで問題が解決した場合は、いずれかのライブラリのlog4jコンポーネントを無効にしてもかまいません。

4

2 に答える 2

2

両方のライブラリで必要とされる正しいバージョンのlog4jを使用していることを確認しますか?エラーメッセージは、log4jバージョンIMOが正しくないことを示しているようです。

于 2010-05-27T19:22:24.500 に答える
0

ロギングを無効にする方法を示すTwitter4Jロギングの問題への返信に出くわしました:

-Dtwitter4j.loggerFactory=twitter4j.internal.logging.StdOutLoggerFactory

このプロパティを追加すると、例外がなくなりました。

于 2010-05-27T21:07:01.373 に答える