Étrange jboss d'erreur de la console
Je suis la création de module supplémentaire à déjà multi-module de projet maven. Et pour ce que je veux que tout soit comme dans les autres modules(sens dépendances) juste pour tester bonjour tout le monde, alors je vais aller faire un peu plus complexes. Et il n'a imprimer bonjour tout le monde, comme il se doit lorsqu'il est déployé sur le serveur jboss, mais j'ai une étrange erreur sur la console, si on avait eu une expérience similaire? et comment puis-je résoudre ce problème? Ici, il est :
15:48:35,789 ERROR [STDERR] log4j:ERROR A "org.jboss.logging.appender.FileAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
15:48:35,789 ERROR [STDERR] log4j:ERROR The class "org.apache.log4j.Appender" was loaded by
15:48:35,790 ERROR [STDERR] log4j:ERROR [BaseClassLoader@9a8d9b{vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/new-module-0.0.1-SNAPSHOT.war/}] whereas object of type
15:48:35,790 ERROR [STDERR] log4j:ERROR "org.jboss.logging.appender.FileAppender" was loaded by [org.jboss.bootstrap.NoAnnotationURLClassLoader@506411].
15:48:35,790 ERROR [STDERR] log4j:ERROR Could not instantiate appender named "FILE".
Ici est la partie de l'Appender xml
OriginalL'auteur ant | 2010-03-29
Vous devez vous connecter pour publier un commentaire.
Vérifiez d'abord votre
<server>/conf/jboss-log4j.xml
pour la configuration de l'appender nomméFILE
(et le poster ici si vous le pouvez, qui peut nous donner plus d'indices).Une enquête plus approfondie révèle que
org.jboss.logging.appender.FileAppender
fait implémente l'interfaceorg.apache.log4j.Appender
. C'est donc apparemment un chargeur de classe de conflit. La même définition de la classe (dans ce casorg.apache.log4j.Appender
), lorsqu'il est chargé par deux chargeurs de classes, compte deux classes distinctes pour la JVM.Est log4j.jar inclus dans votre guerre, ou de votre serveur/répertoire lib? Si oui, vous pourriez essayer de les enlever et de voir si elle résout le problème.
Mise à jour: en Fait le plus simple possible, la solution est tout simplement de changer le type de l'appender à
org.apache.log4j.FileAppender
dans jboss-log4j.xml.Concernant log4j.jar, ce que je veux dire, c'est que si elle est présente dans votre guerre, il (et une copie de
org.apache.log4j.Appender
) est chargé par la guerre du chargeur de classe (BaseClassLoader@9a8d9b
dans votre message d'erreur). Et ce qui provoque le chargeur de classe de conflit. Donc, si vous ne déployez pas log4j.jar avec votre guerre, l'erreur peut aller loin. Ceci est lié à Maven seulement que la dépendance est configuré dans votre pom. Pour ce petit test, vous pouvez simplement supprimer le log4j.jar à partir de votre guerre à la main; si cela résout le problème, configurez le log4j de la dépendance dans votre pom comme "prévu", par exemple:Si log4j.jar n'est pas dans votre guerre, il pourrait encore être dans le server/default/lib - s'il vous plaît vérifier et si c'est là, d'essayer de les supprimer.
voir ma mise à jour.
ajout <champ></> a fait le tour, soins à expliquer pourquoi?
Heureux d'entendre 🙂 Il fonctionne, parce que, par défaut, Maven paquets de toutes les dépendances au sein de la guerre. La "condition" de la portée raconte Maven que ce pot est fourni par l'environnement cible, donc il n'est pas nécessaire de l'inclure dans la guerre. Pour plus de détails, voir maven.apache.org/guides/introduction/...
Merci pour l'explication
OriginalL'auteur Péter Török
Nous avons récemment tombé sur ce problème. Nous avons essayé les suggestions ci-dessus et ils n'ont pas de travail. Donc, nous avons traité le problème en remplaçant tous les log4j importations avec un abrégé de la journalisation de l'interface (nous avons choisi org.apache.commons.l'enregistrement de ce) et la suppression de la log4j de la depdenancies. Puis ce qui se passe est le sous-jacent de la journalisation de la mise en œuvre prend en charge quel que soit JBoss. Et si nous voulons revenir à Tomcat (sans JBoss) il suffit d'ajouter le log4j en pot ou en ce que l'enregistreur de mise en œuvre de nouveau dans la guerre.
OriginalL'auteur Mr. Mundkowsky