0

大きなリッチフェイス ツリーがあり、ツリー内の各要素を選択して AJAX 経由でコンテンツを読み込み、編集して新しいページにリダイレクトすることができます。これは、作業中の特に大きなドキュメントが保存され、保存できなくなるまではうまく機能していました。正しいコンテンツを表示する編集ページにリダイレクトされましたが、編集を「保存」しようとすると ViewExpiredException が発生しました。

多くのパラメーターを微調整してみましたが、最終的にそれを修正する 2 つのパラメーターにたどり着きました。

com.sun.faces.numberOfViewsInSession
com.sun.faces.numberOfLogicalViews

私が見る限り、それぞれのデフォルトは 15 です。それらをばかげた 500 に設定すると、アプリケーションは再び動作します。残念ながら、問題がどこにあるのかわからず、アプリケーションが大きいため、関連するコードを表示できません。

しかし、問題は次のとおりです。これらのパラメーターは正確には何をするのか、これらの例外に遭遇する原因は何なのか、許容される値は何かということです。

アップデート

質問が反対票を投じられた理由は完全にはわかりませんが、それが想定される重複に関するものである場合: Google でその投稿を見つけましたが、それが提供するリンクは無効です。パラメータの標準的な (そしてあいまいな) 定義を除いて、パラメータに関する情報はあまりないようです。

4

1 に答える 1

1

サーバー側の状態保存が使用されている場合 (デフォルト)、これら 2 つのパラメーターを使用して、論理ビューと実際のビューの最大数を構成できます。

論理ビューは、すべての GET 要求で作成される最上位のビューです (たとえば、新しいブラウザー ウィンドウまたはタブでページを開いたとき、ブラウザーのアドレス バーにアドレスを入力したとき、iframe など)。各論理ビューには、いくつかの関連付けられた実際のビューを含めることができます。ユーザーが標準の JSF メカニズムを使用してページをナビゲートすると、実際のビューが作成されます (たとえば、 のactionメソッドから返されたページにナビゲートする場合commandButton)。ビューの両方のキューは、LRU アルゴリズムを使用して、いつビューを削除するかを決定します。これらのキューの最大数は、これら 2 つのパラメーターの値によって制限されます。

そのcom.sun.faces.numberOfViewsInSessionため、論理ビューごとにセッションに格納される JSF ビューの最大数を定義し、セッションごとに格納する論理ビューcom.sun.faces.numberOfLogicalViewsの最大数を定義します。

あなたが提供した情報によると、 の構成によってcom.sun.faces.numberOfViewsInSession問題が解決された可能性がありますが、多くのビューが作成される理由をさらに調査する必要があります。

追加リンク:

于 2013-02-22T14:22:53.563 に答える