問題タブ [viewexpiredexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsf - jsf ログイン タイムアウト
簡単な質問です。ログインページを含む JSF アプリケーションがあります。問題は、ユーザーがログイン ページをロードし、しばらくそのままにしてからログインしようとすると、セッションが期限切れになり、ViewExpiredException がスローされることです。これが発生したときにログインにリダイレクトすることはできますが、それはあまりスムーズではありません。追加の試行なしで、このフローが適切にログインできるようにするにはどうすればよいですか?
java - JBoss AS 5 で実行されている JSF Web アプリケーションでの「セッション期限切れ」の処理
この質問は、私の他の質問「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.
以前にこの問題に直面した人はいますか? この問題を解決するためのアイデアはありますか?
java - JSF と Richfaces で期限切れの ViewState を処理する
相互に構築されたシリーズの登録ページがあります。ユーザーセッションが期限切れになると、サーバー上のすべてをクリーンアップし、うまく機能するリスナーがあります。しかし、ユーザーが何か他のことをしようとすると、シリーズの最初のページにリダイレクトしたいだけです。ただし、フィルターが正しく機能していないようです。javax.faces.application.ViewExpiredException が発生し続けます
この例外を処理するためのベスト プラクティスは何ですか? グローバルすぎるため、web.xmlで処理することはできません。さらに、一部の JSF コードからエラー ページがレンダリングされています。そもそも例外が発生しないように、PhaseListener を使用してこれが発生していることを把握する必要があるようですが、適切なモデルを見つけることができませんでした。これを行う方法について。何か案は?
java - com.sun.faces.enableRestoreView11Compatibility JSF 1.2 で代わりに使用するもの
javax.faces.application.ViewExpiredException がある場合、ユーザーをログインページに送りたいと思います。
web.xml
sessionExpired.jsf
enableRestoreView11Compatibility は JSF 1.1 で使用されていたメソッドですが、JSF 1.2 での解決策は何ですか?
java - viewExpiredException JSF
JSFでviewExpiredExceptionを処理するために、私はコーディングしました
でweb.xml
。
error.html
元のログインページにリダイレクトしました。ただし、問題は、セッションの有効期限が切れても、セッションスコープのBeanがクリアされなかったことです。これを解決する方法はありますか?
java - JSF:ViewExpiredExceptionをキャッチできません
Glassfishv3でJSF2.0アプリケーションを開発していて、ViewExpiredExceptionを処理しようとしています。しかし、私が何をするにしても、自分のエラーページではなく、常にGlassfishエラーレポートを受け取ります。
VEEの発生をシミュレートするために、VEEを起動する次の関数をバッキングBeanに挿入しました。この関数は、JSFページからcommandLinkを介してトリガーしています。コード:
最初は、web.xmlにエラーページを追加するだけで試してみました。
しかし、これは機能しません。エラーにリダイレクトされませんが、Glassfishエラーページが表示されます。このページには、次のコンテンツを含むHTTPステータス500ページが表示されます。
次に試したのは、 JavaServerFaces 2.0-完全なリファレンスで説明されているように、ExceptionHandlerFactoryとCustomExceptionHandlerを作成することでした。そこで、faces-config.xmlに次のタグを挿入しました。
そして、これらのクラスを追加しました:ファクトリ:
カスタム例外ハンドラ:
しかし、それでもエラーページにリダイレクトされません-上記と同じHTTP500エラーが発生します。何が間違っているのですか、例外が正しく処理されないという私の実装に何が欠けている可能性がありますか?どんな助けでも大歓迎です!
編集
はい、正直です。実際、私のコードは実際にはScalaで書かれていますが、それは長い話です。いつもJavaの問題だと思っていました。この場合の本当のエラーは私自身の愚かさでした。私の(Scala)コードのCustomExceptionHandlerで、「i.remove();」の行を追加するのを忘れました。そのため、ViewExpiredExceptionは、処理後もUnhandledExceptionsQueueにとどまり、「バブルアップ」しました。そして、それがバブルアップすると、ServletExceptionになります。
お二人ともご迷惑をおかけして申し訳ございません。
jsf - web.xml の java.lang.Throwable エラーページに表示される ViewExpiredException
ビューの有効期限が切れた場合に「セッション期限切れ」ページを表示する必要がある JSF Web アプリケーションに取り組んでいますが、他のすべての一般的な技術エラー ページです。例外をトリガーしたときにのみ、アプリケーションは技術エラー ページに移動します。エラーページの定義は次のとおりです。
technicalError.jsp エラー ページ要素を削除したところ正常に動作しましたが、それらを元に戻すと、sessionExpired.jsp ページにアクセスできません。適切なページが表示されるように、これらのタグを評価する順序を Web コンテナーに伝えるにはどうすればよいですか? ありがとう。
jsf - JSF の ViewExpiredException
私はJSFを使用しており、web.xmlでクライアントにjavax.faces.STATE_SAVING_METHODを持っています。私がしたいのは、セッションがタイムアウトして別のページにリダイレクトしようとすると、sessionTimeout.jsf にリダイレクトする必要があり、そのページのボタンをクリックすると、login.jsf にリダイレクトする必要があるということです。sessionTimeout.jsf を設計しました。セッションが期限切れになり、別のページに移動しようとすると、javax.faces.application.ViewExpiredException がスローされます。ターゲットページにセッション変数を設定して、そのページに移動するたびに最初に変数をチェックしますが、ここではそのページに移動する前に例外をスローします。これを解決するには?
jsf - javax.faces.application.ViewExpiredException:ビューを復元できませんでした
コンテナ管理のセキュリティを備えた簡単なアプリケーションを作成しました。問題は、ログインしてログアウトした別のページを開いた後、最初のページに戻り、リンクなどをクリックするか、ページを更新すると、この例外が発生することです。ログアウトしてセッションが破壊されたため、正常であると思います(またはそうではないかもしれません:))。ユーザーをたとえばindex.xhtmlまたはlogin.xhtmlにリダイレクトし、そのエラーページ/メッセージが表示されないようにするにはどうすればよいですか?
つまり、ログアウト後に他のページをインデックス/ログインページに自動的にリダイレクトするにはどうすればよいですか?
ここにあります:
jsf - com.sun.faces.numberOfViewsInSession 対 com.sun.faces.numberOfLogicalViews
JSF 2 の Mojarra 実装には、次のコンテキスト パラメータがあります。
com.sun.faces.numberOfViewsInSession
(デフォルトは 15)com.sun.faces.numberOfLogicalViews
(デフォルトは 15)
それらの違いは何ですか?ドキュメントは、これらについてあまり語っていません。私のアプリはViewExpiredException
いくつかのページで問題を抱えていましたが、これらの設定を (はるかに) 高い値に上げた後、問題は発生しなくなりました。
私のアプリは、金融、フォームの多い、ajax 対応のアプリです (一部の画面には 50 以上の入力があり、AJAX を介してさらに多くのデータ/入力を追加するオプションがあります)。
この動作の原因は何ですか?最初のパラメーターは、セッションに保持される「ページ」の数を定義することを理解しています。これは戻るボタンに役立つ場合がありますが、トリガーするユースケースでViewExpiredException
は戻るボタンを使用しません。2番目のパラメータは何を参照していますか? 同じ画面にとどまり、AJAX を介して大量のデータを追加し続けると、ページに多数の論理ビューが必要になりますか?