से कनवर्ट करने में मदद की ज़रूरत है मैं एक वेब.एक्सएमएल आधारित वेब ऐप को वसंत बूट में बदलने की कोशिश कर रहा हूं लेकिन मुझे HttpRequestHandlerServlet को कॉन्फ़िगर करने में समस्या हो रही है। मैं अपने web.xml में निम्नलिखित है:web.xml वसंत बूट
<servlet>
<servlet-name>webServices</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>updateServlet</servlet-name>
<servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>updateServlet</servlet-name>
<url-pattern>/update</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>webServices</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
DispatcherServlet एक समस्या नहीं था:
@SpringBootApplication
public class WebApplication extends SpringBootServletInitializer
{
public static void main(String[] args)
{
SpringApplication.run(PoolWebApplication.class);
}
@Bean
public DispatcherServlet dispatcherServlet()
{
return new DispatcherServlet();
}
@Bean
public ServletRegistrationBean servletRegistrationBean()
{
return new ServletRegistrationBean(dispatcherServlet(), "/ws/*");
}
}
लेकिन मैं समझ नहीं updateServlet को कॉन्फ़िगर कैसे करें।
एक स्प्रिंग बूट एप्लिकेशन में एक HttpRequestHandlerServlet आधारित servlet को कैसे कॉन्फ़िगर करता है?
अतिरिक्त जानकारी:
मैं सुझाव दिया जवाब की कोशिश की लेकिन यह मेरे लिए काम नहीं करता।
एक बात है कि मैं उल्लेख नहीं था कि UpdateServlet "updateServlet" नाम दिया गया है: componenet ("updateServlet") सार्वजनिक वर्ग UpdateServlet लागू करता HttpRequestHandler
कि जवाब में सेम नाम के साथ नाम विरोध करता है। इसे बदलने (अद्यतन करने के लिए) के बाद, मैं मिलता है:
No bean named 'httpRequestHandlerServlet' is defined
httpRequestHandlerServlet को updateServlet का नाम बदलने के बाद, मैं
org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'httpRequestHandlerServlet' must be of type [org.springframework.web.HttpRequestHandler], but was actually of type [org.springframework.web.context.support.HttpRequestHandlerServlet]
आपको 'अपडेट सर्विलेट()' विधि का उपयोग सीधे 'अपडेट सर्विलेट पंजीकरण() 'विधि में नहीं करना चाहिए, क्योंकि प्रत्यक्ष आमंत्रण उदाहरण देगा जो' ApplicationContext' के बाहर होगा। –
नहीं, यह नहीं होगा। '@ बीन 'विधियों को वसंत द्वारा संसाधित किया जाता है और वास्तव में अवरुद्ध होते हैं। –
'बीन' विधियों को बिल्कुल भी अवरुद्ध नहीं किया जाता है, स्प्रिंग बीन उदाहरण बनाने के लिए वसंत का उपयोग करके उन्हें मैन्युअल रूप से बेकार कर दिया जाता है। यहां यह सही तरीके से कैसा दिखना चाहिए: '@ बीन पब्लिक सर्वलेट पंजीकरण, बीन अपडेट सर्विट पंजीकरण पंजीकरण (एचटीपीआरक्वेटहैंडलरर्वलेट अपडेट सर्विलेट) '। इस मामले में स्प्रिंग एप्लिकेशनकॉन्टेक्स्ट से 'अपडेट सर्वलेट' उदाहरण इंजेक्ट करेगा। –