205 votes

Obtention de l'exception java.lang.ClassNotFoundException : exception org.apache.commons.logging.LogFactory

J'exécute un simple programme d'injection de dépendances de Spring et je reçois cette exception. J'ai déjà inclus le fichier common-logging1.1.1.jar et spring.jar. Pouvez-vous m'aider ?

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:119)
    at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:55)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:56)
    at com.client.StoryReader.main(StoryReader.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 6 more

2 votes

Tout d'abord, vérifiez que votre classpath est bien correct. Ensuite, essayez d'ouvrir le jar et vérifiez qu'il contient bien la classe org.apache.commons.logging.LogFactory. Enfin, essayez de déboguer en plaçant un point d'arrêt dans le chargeur de classe.

2 votes

Toutes les réponses ci-dessous suggèrent commons-logging est un pas en arrière. Utilisez jcl-over-slf4j à la place.

0 votes

Sous Android, ajoutez testCompile 'commons-logging:commons-logging:1.1.1' à app.gradle.

0voto

dhammikas Points 1

Vérifiez simplement si le fichier commons-logging.jar a été ajouté à vos libs et au classpath . J'ai eu le même problème et c'était à cause de cela. dhammikas-

0voto

brianegge Points 12857

En général, j'assigne le classpath à une variable et je le vérifie ensuite. J'ai écrit un petit ruby script que j'inclus dans mes scripts de démarrage qui valide le classpath avant de lancer java . La validation du classpath avant le démarrage de la JVM m'a permis de gagner beaucoup de temps dans la résolution de ce type de problèmes.

2 votes

Vous devriez plutôt envisager d'utiliser des outils comme Maven.

-2voto

Krishnarjun Points 1

Bonjour mes amis si vous obtenez une exception de classe non trouvée dans le code d'Hibernate c'est le problème des fichiers jar.ici principalement deux problèmes
Je veux dire que vous travaillez avec une ancienne version d'Hibernate, peut-être la 3.2. Donc si vous essayez la version 3.6, cela fonctionnera bien.

2. vérifie d'abord la connexion à la base de données. Si la base de données fonctionne correctement, il y a une erreur dans votre programme ou votre fichier jar.

S'il vous plaît vérifier ces deux prioblems si elle ne fonctionne pas aussi vous avez essayé de IDE . J'utilise la version 6.9 de Netbeanside. Ici, Hibernate fonctionne bien. Vous n'obtenez aucune erreur de classe non trouvée exceptionnellement.

J'espère que celui-ci vous aidera davantage

-3voto

Bob V. Points 1

Si tout le reste échoue, comme ce fut le cas pour moi, essayez de placer le fichier commons-logging-x.y.z.jar dans votre répertoire lib de Tomcat. Cela a résolu le problème ! BTW, j'utilise Tomcat 6.

0 votes

Une histoire de nom ? De quoi parlez-vous ?

-4voto

Sachin Points 11

La solution consiste à ajouter common-logging.x.x fichier jar

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X