0

最近、6.1からWebSphere 7.0に移行し、JSF1.1からJSF1.2にアップグレードしました。セッションが期限切れになり、ブラウザから何かが送信されるたびに、例外が発生します。

Caused by: javax.faces.application.ViewExpiredException: viewId:/Foo/Bar.jsp - View /Foo/Bar.jsp could not be restored.

どうすればそのエラーを防ぐことができますか?

  • リクエストの結果は、入力フィールドと同じページに表示されます。
  • ページにセッションスコープのバッキングBeanを使用しています。

編集:WAS 7.0 / JSF 1.2の移行の問題のように見えます。https://www.ibm.com/developerworks/forums/thread.jspa? threadID = 332460&tstart = 30を参照してください(回答はありません)

BalusCは、なぜそれが発生するのかをここで説明していますjavax.faces.application.ViewExpiredException:ビューを復元できませんでした。しかし、なぜそれが以前に起こらなかったのですか?移行前は、いくつかのアプリが正常に機能していました。

4

2 に答える 2

2

これはJSF1.2にとって新しいことではなく、Websphereとはほとんど関係がありません。

私の推測では、以前はクライアントに状態が保存されていたため、これまでこの例外が発生したことはありませんでした。JSFのデフォルトは、サーバーに状態を保存することです。web.xmlに次のように入力することで、クライアントの状態を明示的に要求できます。

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
</context-param>

より詳細な回答については、この質問を参照してください。JSFがUIコンポーネントの状態をサーバーに保存するのはなぜですか。

于 2011-10-31T16:29:42.967 に答える
0

これをチェックしましたか? JBossAS5で実行されているJSFWebアプリケーションでの「セッションの期限切れ」の処理

少なくとも、それがJSFアプリケーションでセッションの有効期限を処理する方法です。

それがスティーブンに役立つことを願っています

于 2011-10-31T16:32:04.027 に答える