Удалите сервлет внешнего диспетчера и используйте встроенный в весеннюю загрузку
Недавно мы перешли на Spring Boot 1.5.4 из Spring MVC, мы переместили сервлет диспетчера из web.xml в bean-компонент, но теперь мы хотим удалить этот явный сервлет диспетчера и использовать встроенный. Когда мы удалили этот bean-компонент, развернули приложение на внешнем сервере tomcat и попытались получить доступ к API-интерфейсам, мы получили ошибку 404. У нас есть пользовательская конфигурация в нашем приложении, которое также является многомодульным, поэтому мы не можем включить @EnableAutoConfiguration. Пожалуйста, помогите мне удалить диспетчер сервлетов и включить встроенный диспетчер весенней загрузки. Примечание: у некоторых также есть несколько других сервлетов, таких как DwrServlet и CXFServlet.
Основной класс
@SpringBootConfiguration
@ComponentScan(lazyInit = true, basePackages = {"com.abc"})
@ImportResource({
"classpath:spring/applicationContext-resources.xml",
"classpath:common-applicationContext-dao.xml",
"classpath:common-applicationContext-service.xml",
"classpath:common-applicationContext.xml",
"classpath:core-applicationContext.xml",
"classpath:spring/applicationContext-validation.xml",
"classpath:spring/security.xml",
"classpath:custom-monitoring-spring.xml"})
@EnableAutoConfiguration
public class WebApplication extends SpringBootServletInitializer {
public WebApplication() {
setRegisterErrorPageFilter(false);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(WebApplication.class);
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setInitParameter("javax.servlet.jsp.jstl.fmt.localizationContext", "ApplicationResources");
servletContext.setInitParameter("javax.servlet.jsp.jstl.fmt.fallbackLocale", "en");
super.onStartup(servletContext);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(WebApplication.class, args);
}
}
Бин Dispatcher Servlet, который я хочу удалить
@Bean
public ServletRegistrationBean dispatcherServlet() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
servletRegistrationBean.setServlet(new DispatcherServlet());
servletRegistrationBean.setName("dispatcher");
servletRegistrationBean.setLoadOnStartup(1);
servletRegistrationBean.addInitParameter("contextAttribute", "org.springframework.web.context.WebApplicationContext.ROOT");
servletRegistrationBean.addUrlMappings("/app/*");
return servletRegistrationBean;
}