inattendu exception: java.lang.NoClassDefFoundError: org/apache/log4j/LogManager

Je suis le développement d'une application GWT. C'est à l'aide de RPC pour recueillir des informations à partir d'un système interne. Il le fait en utilisant une bibliothèque de pot, permet de l'appeler alpha.jar. Nous sommes à l'aide de ce bocal dans de nombreuses applications de sorte qu'il fonctionne bien, et btw ses construit avec ANT, en dehors d'eclipse.

Certaines classes dans alpha.jar références LOG4J2 et aussi beaucoup d'autres pots, donc lorsque nous une demande, nous passons un classpath pour tous ceux, et tout fonctionne bien. Veuillez noter que ce n'est pas un simple débutants problème. L'alpha.jar fonctionne comme il se doit, y compris les appels à Log4J.

Le problème:

Dans Eclipse, j'ai cette GWT projet d'application et aussi la Alpha.jar projet (avec le code source bien sûr). La partie serveur doit démarrent des instances alpha objets et de les communiquer à l'alpha du système.

Quand ce faire, dans GWT par l'ajout d'une accumulation de chemin de référence pour le projet Alpha, mon GWT app fonctionne très bien.

Quand je au lieu de la référence du projet comprennent (en war/WEB-INF/lib) le alpha.jar et s'exécute l'application, j'obtiens le message d'erreur dans le titre la première fois que je instancier une classe de alpha.jar.

Il n'existe pas de particularités dans la manière dont les alpha.jar est construit, donc, fondamentalement, il devrait être la même chose que le projet dans eclipse, droit?

Noter les points suivants:

*) La alpha.jar's dépendant pots sont également en war/WEB-INF/lib. log4j2-core, log4j-api ainsi qu'un tas d'autres (apache commun par exemple)

*) Si je supprime le alpha.jar (et le code qui l'appelle) et, au lieu de simplement ajouter le code qui a appelé LOG4J2, que le code fonctionne aussi très bien!

Comment puis-je obtenir cette étrange erreur lorsque vous utilisez le POT?? Notez également la NoClassDefFoundError, ce n'est pas le plus commun ClassNotFoundException. Pls voir Quelles sont les causes et quelles sont les différences entre NoClassDefFoundError et ClassNotFoundException?

Si vous avez besoin de plus d'info, laissez-moi savoir.

Pouvez-vous fournir votre script de construction ... vous êtes probablement manquant un Log4J de dépendance nécessaire pour l'enregistrement des messages. Et de vérifier votre Java runtime/SDK Eclipse et Ant (doit être le même)
Non, je ne suis pas en manque une dépendance. Veuillez lire la question à nouveau.
Désolé, mais à partir de la description de votre problème, je ne suis pas en mesure de comprendre exactement ce que vous faites et où le problème est - donc personne n'a répondu à votre question jusqu'à présent.
Cette autre réponse pourrait être plus pertinente pour certaines personnes avec ce problème. stackoverflow.com/questions/32368758/...

OriginalL'auteur Peter Andersson | 2014-10-13