2016-07-05 35 views
5

ho bisogno di aggiungere un ascoltatore alla mia domanda Stivale Primavera, in web.xml sembraCome aggiungere un RequestContextListener con configurazione no-xml?

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

non uso-web.xml di configurazione, Così ho una classe come

public class AppFilterConfig extends AbstractAnnotationConfigDispatcherServletInitializer { 

@Override 
protected Filter[] getServletFilters() { 
    CharacterEncodingFilter filter = new CharacterEncodingFilter(); 
    filter.setEncoding("UTF8"); 
    filter.setForceEncoding(true); 
    Filter[] filters = new Filter[1]; 
    filters[0] = filter; 
    return filters; 
} 

private int maxUploadSizeInMb = 5 * 1024 * 1024; // 5 MB 

@Override 
protected Class<?>[] getRootConfigClasses() { 
    return null; 
} 

@Override 
protected Class<?>[] getServletConfigClasses() { 
    return null; 
} 

@Override 
protected String[] getServletMappings() { 
    return new String[]{"/"}; 
} 

@Override 
protected void registerDispatcherServlet(ServletContext servletContext) { 
    super.registerDispatcherServlet(servletContext); 
    servletContext.addListener(new HttpSessionEventPublisher()); 

} 

@Override 
public void onStartup(ServletContext servletContext) throws ServletException  { 

    super.onStartup(servletContext); 
    servletContext.addListener(new RequestContextListener()); 
} 

} 

come visto dal codice di cui sopra, ho aggiunto un ascoltatore a OnStartup metodo (ServletContext ServletContext), ma non aiuta, come ho ancora

In this case, use RequestContextListener or RequestContextFilter to expose the current request. 

questo messaggio. Come posso aggiungere correttamente un listener alla mia applicazione Spring Boot?

+0

E perché avete bisogno di questo? La funzionalità del 'RequestContextListener' (o filtro) fa già parte di' DispatcherServlet'. Comunque anche la tua configurazione è errata poiché non stai caricando alcuna classe di configurazione (sia 'rootConfigClasses' che' servletConfigClasses' restituiscono 'null', il che non porta a nulla che venga caricato). –

+0

Grazie @ M.Deinum, sto risolvendo questo problema: http://stackoverflow.com/questions/35875098/protecting-rest-api-with-oauth2-error-creating-bean-with-name-scopedtarget-oau –

risposta

6

Ho creato questa classe e questo ha risolto il mio problema.

@Configuration 
@WebListener 
public class MyRequestContextListener extends RequestContextListener { 
} 
1

Scrivere la propria classe di ascolto che si estende da RequestContextListener e registrarlo tramite annotazione. Qualcosa del genere:

@WebListener 
public class MyRequestContextListener extends RequestContextListener { 
} 
+0

Sfortunatamente Ho lo stesso errore –

+0

@Configurazione è anche necessario, grazie –

+0

Grazie per l'integrazione. Felice di essere utile. – olexd