Question

J'écris une petite application Java et avoir des problèmes avec log4j qui semble être causée par de multiples bibliothèques indépendantes qui tentent d'utiliser simultanément:

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)

Les deux bibliothèques que je utilise sont Twitter4J et VoltDB . Les deux sont sous la forme de Jars. Si je l'utilise soit dans l'isolement, je ne cours pas ce problème; à la fois fin de travail eux-mêmes.

Il serait acceptable pour désactiver le composant log4j soit bibliothèque si le problème est résolu.

Était-ce utile?

La solution 2

Je suis tombé sur un réponse à un problème de l'exploitation forestière de Twitter4J qui montre comment désactiver journalisation :

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

L'ajout de cette propriété fait disparaître l'exception.

Autres conseils

Etes-vous sûr que vous utilisez la bonne version de log4j tel que requis par les deux bibliothèques? Votre message d'erreur semble indiquer dans la version log4j incorrecte de l'OMI.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top