jsfプロジェクトのページをナビゲートしているときにBusyConversationExceptionが発生します。これは主に、ユーザーがajax呼び出し中に別のページに移動しようとした場合に発生します。これは、ユーザーがページの読み込みを待たずに別のリンクをクリックした直後にリンクをクリックした場合にも発生します。
たとえば、ユーザーが以下のようなコードを介して生成された複数のリンクをクリックすると、間違いなくこの例外が発生します。別の例は、ユーザーがテキストフィールドにクエリを入力し、アプリケーションがこのクエリを検索するためにajax呼び出しを行うとします。そのクエリ中に、ユーザーがボタンをクリックして別のページに移動すると、BusyConversationExceptionも発生します。
<h:commandLink value="#{theProfile.profileName}"
title="#{theProfile.profileName}"
action="#{profileBean.aProfileSelected}">
<f:setPropertyActionListener target="#{currentProfileWebBean.theProfile}" value="#{theProfile}"/>
</h:commandLink>
このタイプの例外は、ExceptionHandlerWrapperクラスを拡張するExceptionHandlerクラスでキャッチできますが、現在の状態を保存できません。この場合にできる最善の方法は、この例外が発生したときにメインページにリダイレクトすることです。
これを回避するための解決策はありますか?回答とコメントを事前に感謝します。