Как получить JavaFx WebEngine, чтобы сообщить об ошибках подробно?
в JavaFx я могу прикрепить прослушиватель к load worker для 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
(тот же адрес https в Firefox или Chrome получает мне страницу входа)
тут кто-нибудь знает, как я могу получить более подробные отчеты из JavaFx WebEngine. Я не хочу просто знать, что это не удалось - мне нужно знать почему. Я могу!--18-->Угадай моя ошибка связана с SSL / certificate / HTTPS, но в настоящее время я в полной темноте о том, какая часть SSL вызвала его "сбой"
3 ответов
можно использовать com.sun.javafx.webkit.WebConsoleListener
. Недостатком является то, что это внутренний API JRE.
WebConsoleListener.setDefaultListener(new WebConsoleListener(){
@Override
public void messageAdded(WebView webView, String message, int lineNumber, String sourceId) {
System.out.println("Console: [" + sourceId + ":" + lineNumber + "] " + message);
}
});
вы пробовали следующее:
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());
}
});
лучшее, что мы когда-либо получил, был:
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)