2016-11-14 6 views
-2

Ich versuche SessionId innerhalb ApplicationListener Impl zu bekommen. Es löst NULLPointerException in session.getId(). Ich frage mich, warum es eine Ausnahme bekommen hat. Die Sitzung wird erstellt, kann jedoch nicht auf andere Attribute zugreifen. Unten ist mein Code.Inject httpSession im Frühjahr 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()); 
    } 
} 

bearbeiten

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

Bitte geben Sie eine [mcve] und eine vollständige Stack-Trace. –

Antwort

-1

Bitte stellen Sie sicher, dass Sie eine RequestContextListener in Ihrem web.xml diesem Frühjahr so ​​registriert sind, können den aktuellen HTTPSession injizieren.

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

Ich habe RequestContextListener in AbstractAnnotationConfigDispatcherServletInitializer impl hinzugefügt. – swemon