7
votes

Apache httpclient jette un noclassdefferror

J'ai: Ubuntu-9.10-Desktop-AMD64 + NetBeans6.7.1

  1. Je viens de télécharger "Commons httpClient 3.1 (Legacy)" de http://hc.apache.org /Townloads.cgi . li>
  2. J'ai créé une nouvelle application avec IDE Netbeans. LI>
  3. Je me suis concentré sur les projets -> Bibliothèques -> Ajouter un bocal / dossier et ici ajouté Commons-httpClient-3.1.jar Li>
  4. à l'heure actuelle, je peux écrire "importer org.apache.comment.httpclient. *;" C'est bon. Li>
  5. Mais, si j'essaie d'ajouter une déclaration incluse quelque chose comme ceci: p>

    ***Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
        at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66)
        at SimplestAppl.Main.main(Main.java:22)
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
        ... 2 more
    Java Result: 1***
    
  6. Il est bien compilé. P> li>

  7. Mais quand j'exécute ce projet, je reçois les erreurs suivantes: p>

    public static void main(String[] args) {
        HttpClient client = new HttpClient();
    }
    


1 commentaires

Vous devez ajouter la bibliothèque pour la journalisation des communes de la communication. Si vous êtes confus sur la façon de faire cela: Stackoverflow.com/questions/5893349/...


4 Réponses :


5
votes

Vous avez besoin des dépendances. Si vous avez utilisé Maven, ils vont se chercher. Depuis que vous n'êtes pas, vous devez avoir télécharger les communes de journalisation des communes (et peut-être d'autres) et les jetez-les.


0 commentaires

15
votes

Ce que vous vivez est juste une dépendance manquante. Les développeurs Java sont utilisés pour rassembler leurs dépendances elles-mêmes, en particulier En ce qui concerne les cadres de journalisation. Téléchargez les communes de journalisation et ajoutez-la à votre classe de classe. Faire aussi avec toutes les autres dépendances requises par httpClient.


1 commentaires

Aussi, assurez-vous d'utiliser / Project / WebContent / Web-Inf / Lib /



1
votes

Si vous ne voulez pas utiliser Maven, alors

- build and launch, look at missing dependencies
- identify vendor, fetch the jar to resolve dependencies
- rinse/repeat until you have all dependencies satisfied
- done


0 commentaires

2
votes

J'aimerais mettre à jour quiconque venant ici au fait que toutes les réponses, et surtout Rocketsurgeon's, m'a aidé à résoudre mon problème dans le même sens. J'ai dû télécharger les communes httpclient (Legacy 3.1), la journalisation et le codec avant que mes problèmes ne soient résolus.

aussi de note; En utilisant Eclipse, je devais extraire les fichiers .jar et les importer dans BuildPath en utilisant "Ajouter une bibliothèque". N'a pas fonctionné avec seulement l'ajout de fichier .zip.


0 commentaires