web-dev-qa-db-fra.com

Obtention de l'exception Java.lang.ClassNotFoundException: exception org.Apache.commons.logging.LogFactory

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
160
user188102

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.

112
Manikandan

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>
99
asuka

Vous venez de télécharger commons-logging-1.1.2.jar puis copiez ce fichier dans libs

enfin ça marche.

33
sonida

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.

18
stacky

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>
12
Paramesh Korrakuti

Ajouter commons-logging.jar ou commons-logging-1.1.jar va résoudre ce problème ...

7
APal

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>
6
Patrick Brielmayer

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.

5
Jesper

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. 

4
emills

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
4
Tush

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.

3
歌永_

Deux options (au moins):

  1. Ajoutez le fichier jar commons-logging à votre fichier en le copiant dans un dossier local.

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...

  1. Si vous ne voulez vraiment pas l'ajouter localement parce que vous partagez le pot entre les projets, alors ...

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.

3
devaaron

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

1
rash

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:

  1. Télécharger Android-Java-air-bridge.jar (actuellement le bouton de téléchargement se trouve en bas de la page ou lien direct ici )
  2. Copiez le fichier téléchargé dans votre répertoire [APPROOT]/app/libs (ou liez le fichier par un autre moyen).
  3. Remplacez les instructions import *** par celles de air-bridge. import javadz.beanutils.BeanUtils au lieu de import org.Apache.commons.beanutils.BeanUtils;
  4. Nettoyer et reconstruire le projet

source 1 , source 2

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.

0
Voy

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

0
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.

0
brianegge

J'ai le même problème dans Eclipse IDE, ma solution était: Faites un clic droit dans Mon projet> Propriétés 

 enter image description here

Cliquez sur Maven _ _ et écrivez: jar dans le Projet Maven actif

 enter image description here

Enfin, appliquez et fermez

0
Yuliem Alavez

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.

0
paul

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 ". 

0
The Third

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.

0
Anmol Gupta