0

Firefox で少し奇妙な動作をする Eclipse RAP アプリケーションがあります - 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 が変更されていないことがわかります。

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

4

3 に答える 3

0

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

于 2010-04-09T02:30:01.217 に答える
0

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

于 2010-05-05T10:45:42.550 に答える
0

出力へのストリームのダンプにかかる時間は? タイムアウトを引き起こす可能性がありますか?RAP は Javascript 呼び出しを使用するため、通常のタイムアウト時間よりもはるかに短い場合があります。

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

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

于 2009-08-02T20:55:49.980 に答える