この質問は、私の他の質問「Java Web アプリケーションでセッションの有効期限が切れたときにログイン ページにリダイレクトする方法は? 」に関連しています。以下は私がやろうとしていることです:
- JBoss AS 5 で JSF Web アプリケーションを実行しています。
- ユーザーがたとえば 15 分間非アクティブな場合、セッションの有効期限が切れた後にユーザーがアプリケーションを使用しようとしている場合は、ユーザーをログアウトしてログイン ページにリダイレクトする必要があります。
- そのため、「 JSF ログアウトとリダイレクト」で提案されているように、セッションの期限切れ状態をチェックし、セッションが期限切れになった場合にユーザーを session-timed-out.jsp ページにリダイレクトするフィルターを実装しました。
- セッションの有効期限チェックが常に最初のヒットを取得するように、web.xml の他のすべてのフィルター定義の上に SessionExpiryCheckFilter を追加しました。
今、私が直面している課題が来ます。JBoss AS を使用しているため、セッションが期限切れになると、JBoss は自動的にログイン ページにリダイレクトします (セッション期限切れチェック フィルターは呼び出されないことに注意してください)。したがって、ログイン後、SessionExpiryCheckFilter がリクエストをインターセプトし、セッションが利用可能であることを確認します。しかし、それは例外をスローしますjavax.faces.application.ViewExpiredException: viewId:/mypage.faces - View /mypage.faces could not be restored.
以前にこの問題に直面した人はいますか? この問題を解決するためのアイデアはありますか?