問題タブ [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.

0 投票する
1 に答える
527 参照

jsf - JSF 2.1 + CDI 処理 ActionEvent が ViewExpiredException をスローする

Web アプリの簡単な例を実行しようとしています。私はJSF + CDI Beanを使用しています。

私のフェイスレット:

私のCDIビーン:

Web ブラウザを実行すると、値が「12」のラベルとボタンが表示されます。ボタンを押すと、例外がスローされます

@Named の代わりに @ManagedBean を使用すると、正常に動作します (つまり、ボタンを押すとラベルに「p」が追加されます)。

WEB-INF に beans.xml ファイルがあります。

誰かが私が間違っていることを知っていますか?

0 投票する
1 に答える
1806 参照

jsf-2 - ViewExpiredException でのナビゲーション ケースの解決中に NullPointerException が発生する

上の特定のビューに移動する必要があるカスタム例外ハンドラーを作成しましたViewExpiredException

ただし、次の例外が行にスローされますnav.handleNavigation()

MyFaces と PrimFaces 3.4 を使用しています。

0 投票する
1 に答える
1607 参照

jsf-2 - セッションの期限切れと ViewExpiredException の違い

2つの「巨大な」問題に対する多くの解決策に出くわしました

  • セッションの有効期限が切れ
  • ViewExpiredException

私の質問:それらの違いは何ですか?

私はWASを使用しており、観察しました

  • コンソールで EAR を再起動してもセッションが期限切れにならない
  • 現在の ajax リクエストがあり、EAR が再起動された場合、ViewExpiredException がスローされますが、ユーザーはログアウトされません。
  • ページが 30 分間アイドル状態の場合、ログイン画面が表示されます (これを処理するために sessiontimeoutfilter を使用しました)。

ViewExpiredException は Session Expiry と同じではありませんか? また、EAR を再起動してもセッションが期限切れにならないのはなぜですか?

どんな助けでも大歓迎です。

0 投票する
1 に答える
6112 参照

jsf - ログインページへの転送またはリダイレクト中に予期しないエラーが発生しました

Ajax エラーを処理するために Mojarra 2.1.21 および OmniFaces 1.4.1 を使用して GlassFish 3.1.2.2 で JSF アプリを実行しています。アプリには、プログラムによるログインでフォームベースの認証 (JSF フォーム上) を使用して、保護領域と公開領域の両方があります。

基本的なServletException : Unexpected error forwarding or redirecting to login page .

私が間違っている場合は修正してください。ただし、ログからは、web コンテナーが login.xhtml に転送されているにもかかわらず、古いビューを復元しようとしていることが原因のようです。 - web.xml で定義されたページを照合して表示できました。例外は次のとおりです。

私は何時間もそれをキャッチしようとしましたが、いくつかの方法で無駄になりました:

  • ログインページの構成に追加faces-redirect=trueしても、結果ではないため効果はありません
  • 別の投稿で述べたように、コンテナー管理のセキュリティがフィルターの前に作動するため、rootCause をキャッチするためのサーブレット フィルターの追加は機能しませんでした。
  • Faces Servlet が復元しようとしていたのは期限切れのページのビューだったため、login.xhtmlステートレス<f:view transient = "true">にすることは役に立ちませんでした。

ここ StackOverflow に関する多数の投稿から、いくつかのオプションがあることがわかります。

  • ログインページを非 JSF ページにしますが、ログインページに動的データが必要です
  • カスタム エラー ハンドラーを使用します。これは機能しましたが、OmniFaces の FullAjaxException ハンドラーをオーバーライドし、web.xml のエラー ページ宣言を尊重しなくなりました。

私が知りたいのは、この例外を適切に処理する他の方法はありますか? ログインページへの転送を許可するか、エラーページを表示します。(FullAjaxExceptionHandler に相当する非 Ajax は完璧です!)

よろしくお願いします。

私のweb.xml:

0 投票する
1 に答える
1763 参照

jsf - jsfビューの期限切れはセッションが破棄されたことを意味しますか?

質問があります :

jsf ビューの有効期限が切れたとき、セッションが破棄され、そのすべての属性が削除されたことを確認できますか?

返信ありがとうございます。

0 投票する
0 に答える
260 参照

jsf - ViewExpiredException のエラー ページとして構成されているログイン ページからログインできない

PrimeFaces でのセッション期限切れ後のリダイレクトの問題を処理するために omnifaces を使用しましたが、非常にうまく機能します。問題は、セッション タイムアウトが発生した後に再ログインしようとすると、ログイン ページに誘導され、次のエラーが表示されることです。

F5 をクリックするか、ページをリロードすると、エラーが消えて、homePage に移動します。問題は、セッションの有効期限が切れた後、ajax ボタンをクリックするとこのエラーが発生することです。その後、ログイン ページに移動します。ユーザー名/パスワードを入力してログインボタンをクリックすると、次のエラーが表示されます。

お役に立てれば幸いです。

Ajax レスポンス:

faces-config.xml:

web.xml:

0 投票する
0 に答える
240 参照

jsf - ログアウトとページ期限切れのブラウザ情報

私は Java EE と JSF の初心者です。ログインシステムを作成しようとしていますが、ユーザーがログアウトしたときに戻るボタンに問題があります。これに対処するために、stackoverflow で見つけた他のいくつかのトピックで提案されているようにフィルターを作成しました。次のようになります。

現在、ページはキャッシュされていません。各ページでは、次のような認証機能と呼ばれます。

そのため、管理者がアプリケーションにログインしていない場合、ログイン ページにリダイレクトされます (今のところ、管理者と呼ばれる 1 人のユーザーだけで動作する場合は十分です)。

問題は、管理者がログアウトして [戻る] ボタンを使用すると、期限切れの Web ページに関する情報を含むブラウザー固有の Web ページが表示されることです。現時点では 2 つのケースがあります。

1)ユーザーがログインし、更新を押すと、ページが正常に表示されます。

2) ユーザーがログアウトされ、更新を押すか戻るボタンを再度使用すると、 javax.faces.application.ViewExpiredExceptionがスローされ、ユーザーはログイン ページ (/root/start - web.xml で構成) にリダイレクトされます。 )。

私がやりたいことは、期限切れのWebページに関するブラウザ情報をスキップすることです-ログアウトしたユーザーは、戻るボタンを使用した直後にログインページにリダイレクトする必要があり、ログインしたユーザーは、期限切れのページについて警告されることなく通常どおり戻るボタンを使用できます. 初心者が実装できるソリューションはありますか (存在する場合)?

0 投票する
1 に答える
436 参照

jsf - Seam 2.2.0 のページパラメータを渡す ViewExpiredException でリダイレクト

Seam アプリケーションで、リダイレクト ビューの pages.xml で ViewExpiredException (セッション タイムアウト) に遭遇した後、ページ パラメータを渡そうとしていますが、ブラウザがビューにリダイレクトするときにドロップされます。

ページ パラメータは実際には動的であり、ページはページ パラメータに基づいてテキストを表示しますが、簡単にするために、(今のところ) パラメータを静的のままにしています。

これを回避する方法はありますか?