1

私は Javafx と FXML を使用しています。フォームを作成しました。私のページの 1 つで、左側のペイン (分割ペイン) にツリーがあり、右側のペインは右側のアンカー ペイン内の Web ビューです。

ツリー (treeItem) のノードを選択すると、ツリー ビューで選択されたそれぞれのサイトに応じて Web ビューが変更されます。

これは、アプリケーションとして実行すると (魅力的に) 機能します。

ただし、これをブラウザー (つまり、chrome、firefox、および safari(mac)) で表示すると、Web ビューが表示されず、空白のままになります。つまり、UI が読み込まれ、ツリーが表示されますが、正しいジャンド ペインでは埋め込みビューが表示されません。

Webstart として実行すると、適切なビューが表示されます。Web ビューに埋め込まれている Web ページにはログインがあります。Web ページのちらつきにログインしようとすると、更新のようにログイン フォームが空白になり、資格情報を再度入力する必要があります。

何が間違っているのか、ブラウザ/ウェブスタート側をデバッグする方法がわかりません。

4

1 に答える 1

2

これをブラウザー (つまり、chrome、firefox、および safari(mac)) で表示すると、Web ビューが表示されず、空白のままになります。つまり、UI が読み込まれ、ツリーが表示されますが、正しいジャンド ペインでは埋め込みビューが表示されません。

まだ行っていない場合は、WebView のネットワーク層が外部の場所にアクセスする権限を持つように、アプリケーションに署名して、ブラウザーに埋め込まれた Java アプリケーション サンドボックスの外部で実行できるようにする必要があります。

また、webview loadworker の例外プロパティを監視して、例外または FAILED 状態が発生したかどうかを確認します。

Worker worker = webview.getEngine().getLoadWorker();
worker.stateProperty().addListener(new ChangeListener<Worker.State>() {
  @Override public void changed(ObservableValue<? extends Worker.State> observableValue, Worker.State oldState, Worker.State newState) {
    System.out.println("Browser state change: " + newState);
  }
});
worker.exceptionProperty().addListener(new ChangeListener<Throwable>() {
  @Override public void changed(ObservableValue<? extends Throwable> observableValue, Throwable oldThrowable, Throwable newThrowable) {
    System.out.println("Browser encountered a load exception: " + newThrowable);
  }
});

何が間違っているのか、ブラウザ/ウェブスタート側をデバッグする方法がわかりません。

Webstart/ブラウザ組み込みアプリケーションのデバッグ手順に関する優れた Oracle の記事があります。この記事では、デバッグ レベルやトレース レベルの設定方法など、さまざまなヒントを提供しています。

于 2013-01-23T20:15:36.850 に答える