2016-07-05 5 views
5

मैंनो-एक्सएमएल कॉन्फ़िगरेशन के साथ RequestContextListener को कैसे जोड़ें?

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

मैं कोई web.xml विन्यास का उपयोग web.xml में यह लग रहा है मेरी स्प्रिंग बूट आवेदन करने के लिए एक श्रोता जोड़ने की जरूरत है, तो मैं

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()); 
} 

} 
की तरह एक वर्ग मिल गया है

ऊपर कोड से देखा के रूप में, मैं (ServletContext ServletContext) विधि onStartup करने के लिए एक श्रोता जोड़ लिया है, लेकिन जैसा कि मैं अभी भी

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

यह संदेश प्राप्त यह मदद नहीं करता है। मैं अपने स्प्रिंग बूट एप्लिकेशन में श्रोता को सही ढंग से कैसे जोड़ सकता हूं?

+0

और आपको इसकी आवश्यकता क्यों है? 'RequestContextListener' (या फ़िल्टर) की कार्यक्षमता पहले से ही' डिस्पैचर सर्वलेट 'का हिस्सा है। हालांकि आपकी कॉन्फ़िगरेशन भी गलत है क्योंकि आप किसी कॉन्फ़िगरेशन क्लास को लोड नहीं कर रहे हैं (आपके 'rootConfigClasses' और' servletConfigClasses' वापसी 'null' दोनों को लोड नहीं किया जा रहा है)। –

+0

धन्यवाद @ एम। डीनियम, मैं इस समस्या को हल कर रहा हूं: http://stackoverflow.com/questions/35875098/protecting-rest-api-with-oauth2-error-creating-bean-with-name-scopedtarget-oau –

उत्तर

6

मैंने इस वर्ग को बनाया और मेरी समस्या हल की।

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

अपनी खुद की श्रोता कक्षा लिखें जो RequestContextListener से फैली हुई है और इसे एनोटेशन के माध्यम से पंजीकृत करें। इस तरह कुछ:

@WebListener 
public class MyRequestContextListener extends RequestContextListener { 
} 
+0

दुर्भाग्य से मुझे एक ही त्रुटि मिली है –

+0

@ कॉन्फ़िगरेशन की भी आवश्यकता है, धन्यवाद –

+0

पूरक के लिए धन्यवाद। सहायक होने के लिए खुशी हुई। – olexd

संबंधित मुद्दे