Web.xml tabanlı bir web uygulamasını bahar önyüklemesine dönüştürmeye çalışıyorum ancak bir HttpRequestHandlerServlet yapılandırmasında sorun yaşıyorum. Benim Web.xml şu var:Web.xml yay önyüklemesini dönüştürme konusunda yardıma mı ihtiyacınız var
<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 bir sorun değildi:
@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/*");
}
}
Ama updateServlet nasıl yapılandırılacağı bilemiyorum.
Bir Spring Boot uygulamasında bir HttpRequestHandlerServlet tabanlı sunucu uygulaması nasıl yapılandırılır?
Ek Bilgi:
Gösterdiğim cevabı denedik ama benim için çalışmıyor. Ben söz etmediBir şey UpdateServlet "updateServlet" adlı olmasıdır: componenet ("updateServlet") public class UpdateServlet uygular HttpRequestHandler
O cevap fasulye adıyla adı çakışmaları. (Güncellemek için) bunu değiştirdikten sonra, alıyorum:
No bean named 'httpRequestHandlerServlet' is defined
httpRequestHandlerServlet için updateServlet adını değiştirdikten sonra, ben DispatcherServlet
için
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]
"updateServlet()" yöntemini doğrudan "updateServletRegistrationBean()" yönteminde kullanmamalısınız, çünkü doğrudan çağrı, ApplicationContext öğesinin dışında olacak örneği üretecektir. –
Hayır olmaz. 'Bean' yöntemleri ilkbaharda işlenir ve aslında durdurulur. –
'@ Bean' yöntemlerine hiç müdahale edilmez, Spring Bean örneklerini oluşturmak için bunları kullanarak ve elle onları çağırmak anlamsızdır. İşte nasıl doğru şekilde görünmelidir: '@ Public public ServletRegistrationBean updateServletRegistrationBean (HttpRequestHandlerServlet updateServlet)'. Bu durumda, Spring, "updateServlet" örneğini ApplicationContext'ten enjekte edecektir. –