Я получаю BusyConversationException при навигации по страницам в моем проекте jsf. Это чаще всего происходит, если пользователь пытается перейти на другую страницу во время вызова ajax. Это также происходит, когда пользователь нажимает на ссылку сразу после нажатия на другую ссылку, не дожидаясь загрузки страницы.
Например, если пользователь нажимает на несколько ссылок, которые генерируются с помощью кода, подобного приведенному ниже, мы определенно получаем это исключение. Другой пример: скажем, пользователь вводит запрос в текстовое поле, а наше приложение делает запрос ajax для поиска этого запроса. Во время этого запроса, если пользователь нажимает на какую-либо кнопку для перехода на другую страницу, возникает также BusyConversationException.
<h:commandLink value="#{theProfile.profileName}"
title="#{theProfile.profileName}"
action="#{profileBean.aProfileSelected}">
<f:setPropertyActionListener target="#{currentProfileWebBean.theProfile}" value="#{theProfile}"/>
</h:commandLink>
Я могу уловить этот тип исключения в классе ExceptionHandler, который расширяет класс ExceptionHandlerWrapper, но я не могу сохранить свое текущее состояние, и лучшее, что я могу сделать для этого случая, - перенаправить на главную страницу, когда возникает это исключение.
Есть ли какое-либо решение, чтобы избежать этого? Заранее благодарим за ответы и комментарии.