jsfプロジェクトのページを移動中にBusyConversationExceptionが発生しました。これは主に、ユーザーがajax呼び出し中に別のページに移動しようとした場合に発生します。これは、ユーザーがページの読み込みを待たずに別のリンクをクリックした直後にリンクをクリックした場合にも発生します。jsfでBusyConversationExceptionを回避する方法
たとえば、次のようなコードで生成された複数のリンクをユーザーがクリックした場合は、この例外が発生します。もう1つの例は、ユーザーがテキストフィールドにクエリを入力し、アプリケーションがこのクエリを検索するためのajax呼び出しを行うことです。そのクエリ中に、ユーザがあるボタンをクリックして別のページに移動すると、BusyConversationExceptionも発生します。
<h:commandLink value="#{theProfile.profileName}"
title="#{theProfile.profileName}"
action="#{profileBean.aProfileSelected}">
<f:setPropertyActionListener target="#{currentProfileWebBean.theProfile}" value="#{theProfile}"/>
</h:commandLink>
私はExceptionHandlerWrapperクラスを拡張exceptionHandlerのクラスで例外のこのタイプをキャッチすることができますが、私は私の現在の状態を保存することはできませんし、私はこのような場合のためにできる最善のは、この例外が発生すると、メインページにリダイレクトすることです。
これを回避する解決策はありますか?回答とコメントに感謝します。
注: 'BusyConversationException'はJSFの一部ではありません。私はCDIタグを追加しました。 – BalusC
複数のConversation.beginコールが発生していますか? – LightGuard
私もこの問題を抱えています。もし安心すれば、(Web検索に基づいて)_few_人がそれを持っているように見えるのに驚いています。会話スコープのBeanを削除し、セッションスコープとビュースコープ(Seam Facesが提供するCDIビュースコープを使用)を使用することができます。 – Nick