j'exécute un programme simple d'injection de dépendance du printemps et j'obtiens cette exception. J'ai déjà inclus common-logging1.1.1.jar et le fichier spring.jar. Pourriez-vous s'il vous plaît aider à sortir?
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
J'ai également rencontré les mêmes problèmes. Pour résoudre ce problème, téléchargez les fichiers JAR à partir de l'URL ci-dessous
http://commons.Apache.org/logging/download_logging.cgi
et copier dans votre dossier lib, va résoudre votre problème.
Si vous utilisez maven pour gérer les dépendances, ajoutez la ligne suivante dans votre pom.xml:
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
Vous venez de télécharger commons-logging-1.1.2.jar puis copiez ce fichier dans libs
enfin ça marche.
J'ai eu le même problème et je l'ai résolu en ajoutant simplement le commons-logging.jar
au chemin de classe.
commons-logging-1.1.1.jar ou jcl-over-slf4j-1.7.6.jar al
Si vous utilisez maven, utilisez le code ci-dessous.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
Ajouter commons-logging.jar ou commons-logging-1.1.jar va résoudre ce problème ...
Définir la portée pour compiler le fait pour moi
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
<scope>compile</scope>
</dependency>
J'ai déjà inclus common-logging1.1.1.jar et ...
Êtes-vous sûr d’avoir épelé le nom du fichier JAR exactement comme il se doit? Je pense que cela devrait probablement être commons-logging-1.1.1.jar
(notez le -
supplémentaire dans le nom). Vérifiez également si le nom du répertoire est correct.
NoClassDefFoundError
signifie toujours qu'une classe ne peut pas être trouvée. Votre chemin de classe est donc probablement incorrect.
Essayez de nettoyer complètement le répertoire target/deployment pour que l'application supprime les fichiers jar obsolètes de la bibliothèque. Créez une nouvelle version et vérifiez que commons-logging.jar est réellement placé dans le dossier lib approprié. Il se peut qu'il ne soit pas inclus lors de la création de la bibliothèque pour l'application.
Problème résolu en ajoutant commons-logging.jar
Les fichiers Imp sont,
antlr-runtime-3.0.1
org.springframework.aop-3.1.0.M2
org.springframework.asm-3.1.0.M2
org.springframework.aspects-3.1.0.M2
org.springframework.beans-3.1.0.M2
org.springframework.context.support-3.1.0.M2
org.springframework.context-3.1.0.M2
org.springframework.core-3.1.0.M2
org.springframework.expression-3.1.0.M2
commons-logging-1.1.1
J'ai eu le même problème que toi… .. Enfin, j'ai vérifié la version d'Apache possédant la classe. J'ai trouvé que la version 1.0.4 a la classe.
Essayez d'utiliser la version 1.0.4 au lieu de 1.1.X ou 1.2.X
Mes dépendances:
<dependencies>
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-client-Java</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
</dependency>
</dependencies>
Mon code Java
J4pClient j4pClient = new J4pClient("http://localhost:8080/jolokia");
J4pReadRequest req = new J4pReadRequest("Java.lang:type=Memory","HeapMemoryUsage");
req.setPath("used");
J4pReadResponse resp = j4pClient.execute(req);
System.out.println(resp.getValue());
Mon résultat:
130489168
Vérifiez également que vos dépendances maven sont bien importées.
Deux options (au moins):
Remarque: la liaison du fichier jar peut entraîner des problèmes avec le serveur et peut-être la raison pour laquelle il est ajouté au chemin de génération mais ne résout pas le problème de démarrage du serveur.
Donc, ne pointez pas le pot vers un dossier externe.
OU...
Si vous utilisez une instance de serveur tc, vous devez ajouter le jar en tant que jar externe aux configurations d'exécution de l'instance de serveur.
allez à exécuter en tant que, exécutez les configurations ..., {votre instance de serveur tc}, puis sur l'onglet Chemin d'accès aux classes.
Ajoutez ensuite le fichier jar commons-logging.
http://commons.Apache.org/logging/download_logging.cgi
utilisez cette URL pour télécharger les fichiers jar et les inclure dans votre chemin de classe, le problème sera résolu
Si vous utilisez ceci sur Android, notez qu'apparemment le paquet Java.beans
n'est pas complet sur Android. Pour tenter de résoudre le problème sur Android, procédez comme suit:
import ***
par celles de air-bridge. import javadz.beanutils.BeanUtils
au lieu de import org.Apache.commons.beanutils.BeanUtils;
Je m'excuse car je réalise que cela ne répond pas exactement à la question, bien que cette page SO apparaisse souvent lors de la recherche d'erreurs NoClassDefFoundError: Failed resolution of: beanUtils
générées par Android.
Il suffit de vérifier si le fichier commons-logging.jar a été ajouté à vos bibliothèques et au classpath .. J'ai eu le même problème et c’est pour cette raison. dhammikas
J'assigne généralement le classpath à une variable, puis je le vérifie. J'ai écrit un petit script Ruby que j'inclus dans mes scripts de démarrage et qui valide le chemin d'accès aux classes avant de lancer Java . La validation du chemin de classe avant le démarrage de la machine virtuelle m'a permis de gagner beaucoup de temps à résoudre ces types de problèmes.
Dans mon cas, je testais une application Tomcat dans Eclipse et j'ai eu cette erreur. Je l'ai résolu en vérifiant le fichier .classpath
et en corrigeant cette entrée:
<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.Eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
L'attribut org.Eclipse.jst.component.dependency
était manquant.
Hey, je suivais le tutoriel sur tutorialpoint.com. Ajoutez après avoir terminé Étape 2 - Installez l'API Apache Common Logging: Vous devez importer des bibliothèques externes du projet dans le projet à partir des fichiers téléchargés à cette étape. Pour moi, le nom du fichier était " commons-logging-1.1.1 ".
Je recevais la même erreur alors que le pot était présent. Aucune solution n'a fonctionné. Ce qui a fonctionné a été de supprimer le fichier jar du système de fichiers (du répertoire .m2), puis de nettoyer le projet maven.