Java 更新到htmlunit 2.37.0:setTimeout()生成失败

Java 更新到htmlunit 2.37.0:setTimeout()生成失败,java,htmlunit,Java,Htmlunit,嘿 首先:很抱歉问了一个非常简单的问题,我对Java非常陌生 这是我的问题:我使用net.sourceforge.htmlunitVersion2.8将一个古老代码的依赖性更新为2.37.0(这是Github安全bot推荐的) 现在我的代码没有编译,并抛出两个错误 以下是相关代码: import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.WebClient; ... W

首先:很抱歉问了一个非常简单的问题,我对Java非常陌生

这是我的问题:我使用
net.sourceforge.htmlunit
Version2.8将一个古老代码的依赖性更新为2.37.0(这是Github安全bot推荐的)

现在我的代码没有编译,并抛出两个错误

以下是相关代码:

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;

...

WebClient webClient = new WebClient(FIREFOX_3);
webClient.setTimeout(50000);
HtmlPage page = webClient.getPage("http://king.smith.man.ac.uk/mcpred/");
  • 第一个错误:
  • 第二个错误:
  • 我通过简单地删除“FIREFOX_3”来避免第一个错误。改用“FIREFOX”(=最新版本的FIREFOX)或“FIREFOX_78”无效,并引发了相同的错误

    由于第二个错误,我看不出问题所在。我尝试了其他整数,或者首先定义了一个整数
    inttimeout=50000
    webClient.setTimeout(超时)。总是发生相同的错误。似乎没有导入方法
    setTimeout
    。但是,这应该与
    WebClient
    一起导入,不是吗

    你能告诉我如何处理这些错误吗


    非常感谢

    哇,这是一个巨大的飞跃2.8于2010年8月5日发布,2.37于2020年1月28日发布。 目前的版本是2021年1月2日的2.46.0版-直接迁移到这个版本可能有意义

    如果您查看发行说明,您会发现这一行:

    WebClient:不推荐使用setTimeout()和getTimeout()。请改用webClient.getOptions()

    对于2.11版。意味着-您必须按如下方式更改代码:

    webClient.getOptions().setTimeout(50000);
    

    整个发行说明可在此处找到

    非常感谢!根据建议,我直接升级到2.46.0。关于我的第一个错误:我发现我必须更改为
    WebClient-WebClient=newwebclient(BrowserVersion.FIREFOX)哼,现在编译运行没有错误,但是
    jar
    不再执行了。。。似乎比预期的要多。好的,我还必须添加一个新的依赖项
    XMLAPI
    ,如前所述。有趣的是,它不适用于最新版本(2.0.2),而适用于1.4.01。现在一切都好了。
    [ERROR] ./MissedCleavageAnalysisAdaptor.java:[65,26] cannot find symbol
    [ERROR]   symbol:   method setTimeout(int)
    
    webClient.getOptions().setTimeout(50000);