Доступен ли контекст контекста в HttpSessionListener? - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь запустить приведенный ниже код в моем приложении из HttpSessionListener. Но я вижу разные выходные данные для идентификатора сеанса. Слушатель инициализации сеанса запускается по умолчанию, когда я запускаю свое приложение jsf.

@Override
    public void sessionCreated(HttpSessionEvent se) {
        FacesContext fc=FacesContext.getCurrentInstance();
        System.out.println("session id01-->"+se.getSession().getId());
        HttpSession session= ((HttpServletRequest) fc.getExternalContext().getRequest()).getSession(false);
        System.out.println("httpSessionId-->" + (session!=null?session.getId():""));
}

Первый sysout печатает идентификатор сессии. Второй - печать ноль.

Почему сталкивается с контекстом, возвращающим сессию как ноль, даже если сессия создана?

С уважением, -Виссу Адусумалли.

1 Ответ

0 голосов
/ 05 сентября 2018

Поскольку fc.getExternalContext() не бросает NPE, FacesContext доступен . Почему сеанс из ServletContext (то есть внешний контекст, а не JSF) является нулевым - это другой вопрос. Возможно, он просто еще не установлен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...