質問

Eclipse RAP アプリケーションが Firefox で少し奇妙な動作をしています。2 つの異なる問題があります。

ブラウズしているときに、システムの一部にあるボタンをクリックすることができます。これにより、次のようなポップアップ ウィンドウが開きます。

IWorkbenchBrowserSupport bs;
bs = PlatformUI.getWorkbench().getBrowserSupport();
int style = IWorkbenchBrowserSupport.AS_EXTERNAL;
IWebBrowser b = bs.createBrowser(style, getRandomID(), "Hello world", "");
b.openURL(new URL(...));

ここで、URL はアプリケーション内の別のサーブレットです。このサーブレットは同じランタイム内にありますが、RAP とは何の関係もありません。メモリ内ストレージからバイナリ BLOB を取得し、出力ストリームにダンプします。

問題 1: これにより、Firefox で HTTP セッションが終了し、セッションを再開するためのリンクを含む「セッション期限切れ」RAP エラー ページが表示されます。

問題 2: ここで、リンクをクリックしてセッションを再開すると、アプリケーションのダイアログが再び表示されますが、何かをした瞬間にセッション期限切れエラーが再び表示されます。これにより、Firefox を完全に終了して再起動しない限り、ユーザーはシステムを再度使用できなくなります。FireBug を使って簡単に調べてみると、Firefox によって渡された JSESSIONID が変更されていないことがわかります。

これを見たことがありますか?

役に立ちましたか?

解決 2

現在のHTTPサーブレットコンテキスト内で、RAPアプリケーションがアプリケーション自体のサーブレットを指すポップアップウィンドウを開くと、セッションが強制終了されることがわかりました。問題のサーブレットのダミーHTTPコンテキストを作成することで修正されました。

他のヒント

ストリームを出力にダンプするのにどれくらい時間がかかりますか?タイムアウトが発生する可能性がありますか?RAP は Javascript 呼び出しを使用するため、通常のタイムアウト時間よりも大幅に短くなる可能性があります。

問題 2 の場合:Firefox は多くのものをキャッシュします。また、JavaScript の実行がハングすると、そのような問題が発生する可能性があります。

これらの問題は他のブラウザにも存在しますか?内部ブラウ​​ザ (または別のレンダリング エンジンを搭載した他のブラウザ) で確認することをお勧めします。

同じアプリケーション内からコンテンツを配信する必要がある場合は、代わりにサービスハンドラを使用する必要があります。このFAQをご覧ください: http://wiki.eclipse.org/RAP/FAQ#How_to_provide_download_link.3F

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top