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 )