为什么htmlunit getPage正在与nosuchmenthod发生这个问题

时间:2018-02-16 05:34:28

标签: java html web-scraping webclient htmlunit

我在连接网站时遇到此错误。 Website

java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.toString(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/String;
at com.gargoylesoftware.htmlunit.WebResponse.getContentAsString(WebResponse.java:242)

我正在使用htmlunit 2.29并在测试时

    WebClient client;
    HtmlPage homePage;
    Document doc = null;
    try {
        client = new WebClient(BrowserVersion.FIREFOX_52);
        client.getOptions().setUseInsecureSSL(true);
        client.setAjaxController(new NicelyResynchronizingAjaxController());
        client.getOptions().setThrowExceptionOnFailingStatusCode(false);
        client.getOptions().setThrowExceptionOnScriptError(false);
        client.waitForBackgroundJavaScript(20000);
        client.waitForBackgroundJavaScriptStartingBefore(20000);
        client.getOptions().setCssEnabled(false);
        client.getOptions().setJavaScriptEnabled(true);
        client.getCache().setMaxSize(0);

        homePage = client.getPage(url);

我已在单独的新课程中对其进行了测试。它正常工作。 但在其他项目中使用此(client.getPage(url);)功能块时,
它给出了 noSUchMethodError from IOUtils.toString class.

这里可能缺少什么?

enter image description here

1 个答案:

答案 0 :(得分:1)

通常这是因为依赖性破坏了。确保在类路径中有正确版本的apache.commons.io并检查重复项。

而BTW:

client.waitForBackgroundJavaScript(20000);
client.waitForBackgroundJavaScriptStartingBefore(20000);

是没有选项,在客户端设置期间执行这些调用是没用的。在使用c& p。

之前,请阅读stackoverflow上的所有帖子