Ton*_*ood 11 https javafx rtc http-headers
在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());
}
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在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
Run Code Online (Sandbox Code Playgroud)
(Firefox或Chrome中的相同https地址会为我提供登录页面)
有谁知道如何从JavaFx WebEngine中获取更详细的报告.我不想只知道它失败了 - 我需要知道原因.我可以猜测我的错误是SSL /证书/ HTTPS相关,但目前我还在黑暗中,SSL的哪一部分导致它'失败'
小智 18
你可以用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);
}
});
Run Code Online (Sandbox Code Playgroud)
您是否尝试过以下方法:
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());
}
});
Run Code Online (Sandbox Code Playgroud)
我们得到的最好的是:
if (webEngine.getLoadWorker().getException() != null && newState == State.FAILED) {
exceptionMessage = ", " + webEngine.getLoadWorker().getException().toString();
}
Run Code Online (Sandbox Code Playgroud)
但这没有帮助.
(我们的错误是由于缺少CookieStore引起的,似乎你没有免费获得一个 - 并且必须设置一个默认的:http: //docs.oracle.com/javase/7/docs/api/java/net /CookieHandler.html)
归档时间: |
|
查看次数: |
8819 次 |
最近记录: |