Java HTMLUnit MalformedURLException - PullRequest
       7

Java HTMLUnit MalformedURLException

1 голос
/ 22 декабря 2009

Я пытаюсь выполнить этот код из учебника HTMLUnit :

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

но я получаю исключение MalformedURLException во второй строке при сохранении его в Eclipse (если я компилирую и запускаю код, я тоже получаю его). В чем проблема? ТИА

PS: я новичок в Java

До:

Вот трассировка стека:

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

Ответы [ 3 ]

2 голосов
/ 22 декабря 2009

Я попробовал это в Eclipse 3.5, и он работает правильно, и тест проходит успешно. Я предполагаю, что вы включили необходимые JAR-файлы HTMLUnit в свой проект? Я взял все файлы JAR из каталога HTMLUnit lib и добавил их в путь сборки моего проекта.

Кроме того, вы можете перехватить исключение и опубликовать трассировку стека здесь?

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 голосов
/ 11 июля 2013

Так как в вашей трассировке стека у вас есть

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

это не исключение, связанное с неправильным форматом URL.

Как подтверждено JARFinder , класс org.apache.commons.httpclient.auth.CredentialsProvider должен поступать из commons-httpclient-3. *. Jar. Таким образом, причиной проблемы должно быть то, что в вашем пути к классам нет JAR-файлов Commons HTTPClient 3.x.

0 голосов
/ 11 июля 2013
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();
            }




    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...