За ответ ISASI Вы можете использовать этот код для аннулирования сеанса:
Session.instance().invalidate();
В ответ на ваш последующий "вопрос" (который вы добавили в качестве ответа, причудливо). Чтобы закрыть сеанс после информирования пользователя об успехе, создайте страницу «Подтвердить» и перенаправьте на нее на основе правила, связанного с результатом «Успех». Затем создайте действие страницы для аннулирования сеанса.
<page view-id="/process/confirm.xhtml" action="#{emailManager.completeSession}">
Технически, сеанс будет закрыт перед визуализацией страницы, так что может возникнуть проблема с синхронизацией доступа к данным сеанса, поэтому вам может потребоваться взломать параметры страницы, чтобы компенсировать это. Это потому, что вы в основном делаете это «неправильно», используя сеанс по электронной почте. Вам будет намного лучше использовать беседу, потому что есть аннотация @End, которая завершает беседу после визуализации представления - намного проще.
Вам нужно будет переключиться на использование разговоров, если ваше приложение включает более одной задачи, поскольку любое состояние, удерживаемое между задачами, будет потеряно. Я предполагаю, что это произойдет довольно быстро. Эти проблемы с синхронизацией и управлением состоянием - это проблема, для решения которой был разработан Seam.