0
我试图用HTMLUnit获取此页面,但似乎HTMLUnit发生无限循环并崩溃。HTMLUnite无限循环stackoverflow
我一直试图找到原因,但我放弃了。 我想:
- 从SVN获取的HtmlUnit最新的代码
- 使用不同浏览器
- 尝试调试,但我找不到原因。
如果我使用 webClient.setJavaScriptEnabled(假);
我可以得到的网站,但重要的脚本没有执行。所以,问题是关于JavaScript。
这里运行循环一个示例代码:
String url = "http://www.tjpe.jus.br/processos/consulta1grau/oleConsultaProcesso.asp?
nume=0&modalidade=6";
final List collectedAlerts = new ArrayList();
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_17);
webClient.setThrowExceptionOnScriptError(false);
webClient.setAlertHandler(new CollectingAlertHandler(collectedAlerts));
webClient.waitForBackgroundJavaScript(10000);
webClient.waitForBackgroundJavaScriptStartingBefore(10000);
try {
final HtmlPage page1 = webClient
.getPage(url);
page1.asXml();
} 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();
}
这里是错误:
Jan 4, 2013 11:39:05 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
WARNING: Obsolete content type encountered: 'application/x-javascript'.
Jan 4, 2013 11:39:05 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
WARNING: Obsolete content type encountered: 'application/x-javascript'.
Jan 4, 2013 11:39:43 PM com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine
handleJavaScriptException
INFO: Caught script exception
======= EXCEPTION START ========
Exception class=[java.lang.RuntimeException]
com.gargoylesoftware.htmlunit.ScriptException: Exception invoking go
at
com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run
(JavaScriptEngine.java:665)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:587)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call
(ContextFactory.java:534)
...
Caused by: java.lang.StackOverflowError
at java.lang.reflect.Method.copy(Unknown Source)
at java.lang.reflect.ReflectAccess.copyMethod(Unknown Source)
....
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:432)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:307)
======= EXCEPTION END ========
,我使用的网址是公开的话,可以自由访问它。
请,如果有人能帮助我,我很感激。
嗨,感谢您的帮助,但我认为您没有看到我仍在使用您的建议,但没有任何效果。 – IOSJR