2009-11-21 18 views
7

tengo: ubuntu-9.10-desktop-amd64 + NetBeans6.7.1Apache HttpClient lanza una NoClassDefFoundError

  1. que acaba de descargar "HttpClient Commons 3.1 (legacy)" de http://hc.apache.org/downloads.cgi.
  2. Creé una nueva aplicación con IDE NetBeans.
  3. me he centrado en Proyectos -> Bibliotecas -> Agregar archivo JAR/carpeta y aquí añadido Commons-httpclient-3.1.jar
  4. Por ahora, puedo escribir "org.apache.commons.httpclient importación *;". Esto esta bien.
  5. Pero, si trato de añadir cualquier declaración incluía algo como esto:

    public static void main(String[] args) { 
        HttpClient client = new HttpClient(); 
    } 
    
  6. Se compila bien.

  7. Pero cuando corro este proyecto, que reciben los siguientes errores:

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

Cuál es el problema?

He intentado descargar "HttpClient 4.0 (GA)". Pero el resultado fue el mismo.

+0

Necesita agregar la biblioteca para el registro de commons. Si está confundido acerca de cómo hacer esto: http://stackoverflow.com/questions/5893349/how-to-add-library-files-in-netbeans –

Respuesta

14

Lo que está experimentando es solo una dependencia faltante. Los desarrolladores de Java se utilizan para recopilar sus propias dependencias, esp. cuando se trata de marcos de registro. Descarga commons-logging y agrégalo a tu classpath. Haga lo mismo con todas las otras dependencias requeridas por httpclient.

+0

Además, asegúrese de estar utilizando/Project/WebContent/WEB -INF/lib / – tricknology

5

Necesita las dependencias. Si usabas maven, se buscarían a sí mismos. Como no lo es, debe descargar el registro de recursos comunes (y quizás otros) y echarlos.

1

si usted no desea utilizar Maven, entonces

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

de todos modos que habrá nunca se está seguro de si todas las dependencias se suministran 100%. Suele ser de alrededor del 150% o 99%, pero nunca entre

2

Me gustaría informar a todos los que vienen aquí que todas las respuestas, y especialmente la de RocketSurgeon, me ayudaron a resolver mi problema en el mismo sentido. Tuve que descargar los recursos comunes httpclient (herencia 3.1), el registro y el códec antes de que se resolvieran mis problemas.

También es de destacar; usando Eclipse tuve que extraer los archivos .jar e importarlos a Buildpath usando "agregar biblioteca". No funcionó solo con agregar .zip-file.

Cuestiones relacionadas