如何解决更新到 htmlunit 2.37.0:setTimeout() 构建失败
嘿嘿
首先:抱歉,我可能问了一个非常简单的问题,我对 Java 很陌生。
这是我的问题:我将旧代码的依赖从使用 net.sourceforge.htmlunit
2.8 版更新为 2.37.0(这是 Github 安全机器人推荐的)。
现在我的代码无法编译并抛出两个错误。
相关代码如下:
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/");
- 第一个错误:
[ERROR] ./MissedCleavageAnalysisAdaptor.java:[64,53] cannot find symbol
[ERROR] symbol: variable FIREFOX_3
- 第二个错误:
[ERROR] ./MissedCleavageAnalysisAdaptor.java:[65,26] cannot find symbol
[ERROR] symbol: method setTimeout(int)
通过简单地删除“FIREFOX_3”,我设法避免了第一个错误。改用“FIREFOX”(= 最新版本的 Firefox)或“FIREFOX_78”不起作用并抛出相同的错误。
第二个错误,我看不到问题。我尝试了其他整数或首先定义一个整数 int timeout = 50000;
和 webClient.setTimeout(timeout);
。总是发生同样的错误。似乎没有导入方法 setTimeout
。但是,这应该与 WebClient
一起导入,不是吗?
你能告诉我如何解决这些错误吗?
非常感谢!
解决方法
哇,2010 年 8 月 5 日发布了 2.8,2020 年 1 月 28 日发布了 2.37,这是一个巨大的飞跃。 当前版本是 2.46.0 rom 2021 年 1 月 2 日 - 也许直接迁移到这个是有意义的。
如果您查看发行说明,您会发现这一行:
WebClient:不推荐使用 setTimeout() 和 getTimeout()。改用 webClient.getOptions()。
对于 2.11 版。意味着 - 你必须像这样改变你的代码:
webClient.getOptions().setTimeout(50000);
完整的发行说明可以在这里找到https://htmlunit.sourceforge.io/changes-report.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。