2016-11-14 3 views
-2

Я пытаюсь получить sessionId внутри applicationListener impl. Он выдает исключение NULLPointerException в session.getId(). Интересно, почему он получил исключение. Сеанс создан, но не может получить доступ к другим атрибутам. Ниже мой код.Inject httpSession весной ApplicationListener

@Component 
    public class MyEventListener implements ApplicationListener<MyEvent> { 

    @Autowired 
     HttpSession session; 

    @Override 
     public void onApplicationEvent(final QuotePricingEvent quoteEvent) { 

     LOGGER.error("Session id: {}, userid: {}", session.getId()); 
    } 
} 

Редактировать

@Override 
    public void onStartup(final ServletContext servletContext) throws ServletException { 
     super.onStartup(servletContext); 
     servletContext.addListener(RequestContextListener.class); 
    } 
+0

Предоставьте [mcve] и полную трассировку стека. –

ответ

-1

Пожалуйста, убедитесь, что вы зарегистрировались в вашем web.xml, так что весной может впрыснуть текущую HTTPSession в RequestContextListener.

<listener> 
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
</listener> 
+0

Я добавил RequestContextListener в AbstractAnnotationConfigDispatcherServletInitializer impl. – swemon

Смежные вопросы