Не удается перенаправить из JSF-фазелистера

Моя проблема похожа на однуВот но не включаетPrimeFaces в любом случае. Кроме того, я не мог найти реальное решение там.

Я в основном пытаюсь заставить Phaselistener перенаправить на страницу входа в случае, если нет сеанса JSF (когда, например, время сеанса истекло)

Я пытаюсь перенаправить из JSF 2 Phaselistener. Подводя итог, я делаю вот что:

public void beforePhase(PhaseEvent event) {
    PhaseId id = event.getPhaseId();
    if(id.equals(PhaseId.RESTORE_VIEW)){
        FacesContext context = event.getFacesContext();
        Map<String, Object> sessionMap = context.getExternalContext().getSessionMap();
        if(sessionMap==null || sessionMap.isEmpty()){
            // No Session, Redirect to login
            try {
                context.getExternalContext().redirect("/login");
            } catch (Exception e) {
                ...
            }
        }
    }
}

Когда код перенаправления работает, я получаю это исключение:

java.lang.NullPointerException
        at org.apache.myfaces.context.servlet.PartialViewContextImpl.getPartialResponseWriter(PartialViewContextImpl.java:301)
        at org.apache.myfaces.context.servlet.ServletExternalContextImpl.redirect(ServletExternalContextImpl.java:452)
        at com.AuthenticationPhaseListener.userIsNotLogedIn

Что может быть причиной этого? Я делаю это неправильно?

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос