首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java HTMLUnit MalformedURLException

Java HTMLUnit MalformedURLException
EN

Stack Overflow用户
提问于 2009-12-22 16:05:51
回答 3查看 2.7K关注 0票数 1

我正在尝试从HTMLUnit教程执行这段代码

代码语言:javascript
复制
final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");

但是在Eclipse中保存它时,我会在第二行中获得MalformedURLException (如果我编译并运行代码,我也会得到它)。有什么问题吗?提亚

PS:我是Java新手

Up:

下面是堆栈跟踪:

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-22 16:33:55

我在Eclipse3.5中尝试了这一点,它工作正常,并且测试正在通过。我假设您已经在项目中包含了必要的HTMLUnit JAR?我将HTMLUnit lib目录中的所有JAR添加到项目的构建路径中。

另外,您能捕获异常并在这里发布堆栈跟踪吗?

代码语言:javascript
复制
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();
}
票数 2
EN

Stack Overflow用户

发布于 2013-07-11 08:38:41

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2013-07-11 09:47:38

因为在你的堆叠痕迹里

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.auth.CredentialsProvider

这不是格式错误的URL异常。

作为org.apache.commons.httpclient.auth.CredentialsProvider,经JARFinder证实类应该来自commons 3.*..jar。因此,问题的原因必须是您的类路径中没有通用的HTTPClient 3.x JAR。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1947326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档