How to get the JavaFx WebEngine to report errors in detail?


In JavaFx I can attach a listener to the load worker for a webEngine like this:

      new ChangeListener<Worker.State>() {
      public void changed(ObservableValue ov, Worker.State oldState, Worker.State newState) {                               
             System.out.println("webEngine result "+ newState.toString());

However if I try to load a document at an https address such as:

all I get printed out on the console is:

webEngine result READY
webEngine result SCHEDULED
webEngine result RUNNING
webEngine result FAILED

(The same https address in Firefox or Chrome gets me a login page)

Does anyone know how I can get more detailed reports out of the JavaFx WebEngine. I don't want to just know that it failed - I need to know why. I can guess my error is SSL/certificate/HTTPS related but currently I'm quite in the dark as to which part of SSL caused it to 'FAIL'

3/20/2013 11:30:35 AM

Accepted Answer

The best we ever got was:

if (webEngine.getLoadWorker().getException() != null && newState == State.FAILED) {
    exceptionMessage = ", " + webEngine.getLoadWorker().getException().toString();

but that didn't help.

(Our error was caused by a missing CookieStore, it seems you don't get one for free - and have to set a default one:

8/3/2017 11:00:20 PM

You can use com.sun.javafx.webkit.WebConsoleListener. Downside is that it is JRE internal API.

WebConsoleListener.setDefaultListener(new WebConsoleListener(){
    public void messageAdded(WebView webView, String message, int lineNumber, String sourceId) {
        System.out.println("Console: [" + sourceId + ":" + lineNumber + "] " + message);

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow