https http-headers javafx rtc

https - ¿Cómo hacer que JavaFx WebEngine reporte errores en detalle?



http-headers rtc (3)

Has intentado lo siguiente:

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()); } });

En JavaFx puedo adjuntar un oyente al trabajador de carga para un motor web como este:

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()); } });

Sin embargo, si intento cargar un documento en una dirección https como, por ejemplo:

https://SomeLocalMachine.com:9443/jts/admin#action=com.ibm.team.repository.manageUsers

todo lo que imprimo en la consola es:

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

(La misma dirección https en Firefox o Chrome me da una página de inicio de sesión)

¿Alguien sabe cómo puedo obtener informes más detallados de JavaFx WebEngine? No quiero simplemente saber que falló, necesito saber por qué . Adivino que mi error está relacionado con SSL / certificado / HTTPS, pero actualmente estoy bastante en la oscuridad en cuanto a qué parte de SSL provocó que "FALLA"


Puede usar com.sun.javafx.webkit.WebConsoleListener . Lo malo es que es la API interna de JRE.

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


Lo mejor que obtuvimos fue:

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

pero eso no ayudó.

(Nuestro error fue causado por la falta de una CookieStore, parece que no se obtiene una gratis y tiene que establecer una predeterminada: http://docs.oracle.com/javase/7/docs/api/java/net /CookieHandler.html )