2009-12-22 6 views
1

Je suis en train d'exécuter ce code de la HTMLUnit tutorial:Java HTMLUnit MalformedURLException

final WebClient webClient = new WebClient(); 
final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net"); 

mais je reçois le MalformedURLException dans la deuxième ligne lors de l'enregistrement dans Eclipse (si je compiler et exécuter le code, je reçois ça aussi). Quel est le problème? TIA

PS: Je suis nouveau à Java

Up:

Voici la trace de la pile:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/httpclient/auth/CredentialsProvider 
    at Tester.main(Tester.java:12) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.auth.CredentialsProvider 
    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) 
    ... 1 more 

Répondre

2

J'ai essayé dans Eclipse 3.5 et il fonctionne correctement, et le test passe. Je suppose que vous avez inclus les fichiers JAR HTMLUnit nécessaires dans votre projet? J'ai pris tous les fichiers JAR du répertoire HTMLUnit lib et les ai ajoutés au chemin de compilation de mon projet.

De même, pouvez-vous attraper l'exception et afficher la trace de la pile ici?

try { 
    final WebClient webClient = new WebClient(); 
    final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net"); 
    assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText()); 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 
0
package com.project.test; 

import java.io.IOException; 
import java.net.MalformedURLException; 

import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; 
import com.gargoylesoftware.htmlunit.WebClient; 
import com.gargoylesoftware.htmlunit.html.HtmlPage; 



public class Practice1 { 

    public static void main(String[] args) { 

     final WebClient webClient = new WebClient(); 
      HtmlPage page; 
      try { 
       page = (HtmlPage) webClient.getPage("http://htmlunit.sourceforge.net"); 
       System.out.println("Title="+ page.getTitleText()); 
      } catch (FailingHttpStatusCodeException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (MalformedURLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 




    } 
} 
0

Depuis votre stacktrace vous avez

Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.auth.CredentialsProvider 

ce n'est pas une exception URL malformée.

En tant que confirmed by JARFinder, la classe org.apache.commons.httpclient.auth.CredentialsProvider doit provenir de commons-httpclient-3. *. Jar. Ainsi, la cause du problème doit être que vous n'avez pas de fichiers JAR CommonsClient 3.x dans votre classpath.

Questions connexes