11

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

ただし、次のような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

(Firefox または Chrome で同じ https アドレスを使用すると、ログイン ページが表示されます)

JavaFx WebEngine からより詳細なレポートを取得する方法を知っている人はいますか? 失敗したことだけを知りたいのではなく、理由を知る必要があります。私のエラーは SSL/certificate/HTTPS に関連していると推測できますが、現在、SSL のどの部分が「FAIL」の原因であるかについてはまったくわかりません。

4

3 に答える 3

19

使用できます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);
    }
});
于 2016-06-10T17:01:03.483 に答える
8

これまでに得た最高のものは次のとおりです。

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 )

于 2013-10-11T08:15:51.970 に答える