2017-09-20 2 views
0

Ich versuche, den Spring-Anwendungskontext auf einem ServletContextListener zu erhalten. Ich verwende Spring mit Annotation-Konfiguration. Mit diesem Code bekomme ich "context null". Was mache ich falsch?Erhalten Sie Spring-Anwendungskontext auf einem ServletContextListener

@WebListener 
public class Initializer implements ServletContextListener 
{ 
    public void contextInitialized(ServletContextEvent event) 
    { 
     System.out.println("context " + WebApplicationContextUtils.getWebApplicationContext(event.getServletContext())); 
    } 

    @Override 
    public void contextDestroyed(ServletContextEvent sce) 
    { 
    } 
} 

Dank

+1

Ihre Bestellung der Zuhörer ist falsch. Der 'ContextLoaderListener' sollte vor diesem Listener ausgeführt werden. –

+0

Es hat bei mir funktioniert, danke – Plebios

Antwort

0

Der Schlüssel für Fix das Problem onStartup, um sicherzustellen, die Anmerkung @WebListener und auf WebAppInitializer Überschreibung löschen war, dass die ContextLoaderListener geladen wird, bevor Initializer

public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer 
{ 
. 
. 
. 
    @Override 
    public void onStartup(ServletContext container) throws ServletException 
    { 
     super.onStartup(container); 
     container.addListener(Initializer.class); 
    } 
} 
Verwandte Themen