在JavaFx中,我可以将侦听器附加到webEngine的加载工作器,如下所示:
webEngine.getLoadWorker().stateProperty().addListener(
new ChangeListener<Worker.State>() {
public void changed(ObservableValue ov, Worker.State oldState, Worker.State newState) {
System.out.println("webEngine result "+ newState.toString());
}
});但是,如果我试图将文档加载到https地址,如:
https://SomeLocalMachine.com:9443/jts/admin#action=com.ibm.team.repository.manageUsers
我在控制台上被打印出来的就是:
webEngine result READY
webEngine result SCHEDULED
webEngine result RUNNING
webEngine result FAILED( Firefox或Chrome中相同的https地址为我提供了一个登录页面)
有人知道如何从JavaFx WebEngine获得更详细的报告吗?我不想只知道它失败了-我需要知道为什么。我可以猜到我的错误与SSL /证书/HTTPS有关,但目前我完全不知道SSL的哪一部分导致了“失败”
发布于 2013-10-11 08:15:51
我们得到的最好结果是:
if (webEngine.getLoadWorker().getException() != null && newState == State.FAILED) {
exceptionMessage = ", " + webEngine.getLoadWorker().getException().toString();
}但这没什么用。
(我们的错误是由缺少的CookieStore引起的,似乎您没有免费获得一个--必须设置一个默认的:http://docs.oracle.com/javase/7/docs/api/java/net/CookieHandler.html)
发布于 2016-06-10 17:01:03
您可以使用com.sun.javafx.webkit.WebConsoleListener。缺点是它是JRE内部API。
WebConsoleListener.setDefaultListener(new WebConsoleListener(){
@Override
public void messageAdded(WebView webView, String message, int lineNumber, String sourceId) {
System.out.println("Console: [" + sourceId + ":" + lineNumber + "] " + message);
}
});发布于 2013-10-10 14:04:27
你试过以下几种方法:
engine.getLoadWorker().exceptionProperty().addListener(new ChangeListener<Throwable>() {
@Override
public void changed(ObservableValue<? extends Throwable> ov, Throwable t, Throwable t1) {
System.out.println("Received exception: "+t1.getMessage());
}
});https://stackoverflow.com/questions/15522315
复制相似问题