IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Wildfly/JBoss Java Discussion :

User-specified log class 'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useable.


Sujet :

Wildfly/JBoss Java

  1. #1
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut User-specified log class 'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useable.
    Bonjour,

    je tente de migrer une application depuis tomcat vers jboss. Après quelques corrections dues à une saleté de validation du web.xml (-> passage de 2.4 à 2.5) et le correction de mes datasources, je tombe sur cette erreur de derrière les fagots que je ne m'explique pas (j'ai raccourcis le stacktrace):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    jvm 1    | 18:12:32,723 ERROR [[/intranet]] Error configuring application listener of class org.apache.myfaces.webapp.StartupServletContextListener
    jvm 1    | java.lang.ExceptionInInitializerError
    jvm 1    | 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    jvm 1    | 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
                 =====snip =====
    jvm 1    | 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    jvm 1    | 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    jvm 1    | 	at java.lang.Thread.run(Thread.java:619)
    jvm 1    | Caused by: org.apache.commons.logging.LogConfigurationException: User-specified log class 'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useable.
    jvm 1    | 	at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:798)
    jvm 1    | 	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:601)
    jvm 1    | 	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:333)
    jvm 1    | 	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:307)
    jvm 1    | 	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:645)
    jvm 1    | 	at org.apache.myfaces.webapp.StartupServletContextListener.<clinit>(StartupServletContextListener.java:58)
    jvm 1    | 	... 72 more
    jvm 1    | 18:12:32,729 ERROR [[/intranet]] Error configuring application listener of class org.apache.commons.chain.web.ChainListener
    jvm 1    | java.lang.ExceptionInInitializerError
    jvm 1    | 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    jvm 1    | 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
                 =====snip =====
    jvm 1    | 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    jvm 1    | 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    jvm 1    | 	at java.lang.Thread.run(Thread.java:619)
    jvm 1    | Caused by: org.apache.commons.logging.LogConfigurationException: User-specified log class 'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useable.
    jvm 1    | 	at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:798)
    jvm 1    | 	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:601)
    jvm 1    | 	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:333)
    jvm 1    | 	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:307)
    jvm 1    | 	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:645)
    jvm 1    | 	at org.apache.commons.chain.web.ChainListener.<clinit>(ChainListener.java:144)
    jvm 1    | 	... 72 more
    jvm 1    | 18:12:32,730 ERROR [[/intranet]] Skipped installing application listeners due to previous error(s)
    jvm 1    | 18:12:32,730 ERROR [StandardContext] Error listenerStart
    jvm 1    | 18:12:32,731 ERROR [StandardContext] Context [/intranet] startup failed due to previous errors
    jvm 1    | 18:12:32,733 ERROR [AbstractKernelController] Error installing to Start: name=jboss.web.deployment:war=/intranet state=Create mode=Manual requiredState=Installed
    jvm 1    | org.jboss.deployers.spi.DeploymentException: URL file:/web/intraweb/apps/jboss-5.1.0.GA/server/default/tmp/5c4og65-emnnmd-g24u100t-1-g24x9zxm-9t/intranet.war/ deployment failed
    le Log4JLogger est bien présent dans mon WEB-INF/lib:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    delbd@cal-12:~/dev/workspaces/dbrh2/be.meteo.intranet.webapp.parent$ grep org.apache.commons.logging.impl.Log4JLogger betaserver/target/intranet-rmibeta-1.3-DBRH2R2-SNAPSHOT/WEB-INF/lib/*
    Fichier binaire betaserver/target/intranet-rmibeta-1.3-DBRH2R2-SNAPSHOT/WEB-INF/lib/commons-logging-1.1.1.jar concordant
    La seule explication que je voie, serait un micmac entre les classes fournies dans mon WEB-INF/lib et celles fournies avec jboss. Pourtant, il me semble que les règles concernant le J2EE donnent bien priorité à mes classes pour mes webapp. Donc je ne comprend pas comment cette embrouille peut arriver.

    Quelqu'un a une solution à proposer?

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Résolu. Il faut remplacer, dans JBOSS_HOME/server/<nom>/deployers/jbossweb.deployer/META-INF/war-deployers-jboss-beans.xml ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="filteredPackages">javax.servlet,org.apache.commons.logging</property>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <property name="filteredPackages">javax.servlet</property>

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Petite correction a posteriori. La solution est plutot de retirer commons-logging de votre webapp et utiliser le jar fournis par JBOSS. De plus, cette erreur peux aussi être due à l'inclusion par erreur dans votre webapp de classes venant de xml-api, ce qui amène de la confusion dans le classloader et donc le parsing des fichiers de config. Dans mon cas, il s'agissait de xml-apis qui trainait dans mon WEB-INF/lib ainsi que jtidy qui incluait des apis xml de la jdk et les cachaient

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/10/2011, 16h10
  2. [DisplayTag] installation org/apache/commons/lang/UnhandledException
    Par itr dans le forum Taglibs
    Réponses: 7
    Dernier message: 26/10/2009, 17h29
  3. Prob d'encodage avec la classe org.apache.commons.lang.StringEscapeUtils
    Par elmessoussi dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 21/04/2008, 15h32
  4. Réponses: 3
    Dernier message: 08/05/2006, 23h31
  5. [DisplayTag] java.lang.NoClassDefFoundError: org/apache/commons/lang/UnhandledException
    Par MAJIK_ENIS dans le forum Taglibs
    Réponses: 18
    Dernier message: 06/04/2006, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo