Веб-сервис Spring Boot SOAP с MVC

Я хотел бы объединить два приложения Spring (spring-boot) из Spring guides:

к сожалению, эти примеры не работают вместе. Существует проблема с диспетчером сервлетов. После добавления dispatcherServlet сервлет bean - MVC не работает (ошибка 404).

@Bean
public ServletRegistrationBean dispatcherServlet(ApplicationContext applicationContext) {
    MessageDispatcherServlet servlet = new MessageDispatcherServlet();
    servlet.setApplicationContext(applicationContext);
    servlet.setTransformWsdlLocations(true);
    return new ServletRegistrationBean(servlet, "/ws/*");
}

как настроить диспетчер сервлетов для правильной работы?

Я хотел бы иметь:

  • localhost:8080/ws/* - webservice
  • localhost:8080/web/* - компоненты MVC

спасибо заранее!

1 ответов


проблема заключается в регистрации MessageDispatcherServlet из-за имени dispatcherServlet Он переопределяет зарегистрированную Spring Boot DispatcherServlet. Последнее необходимо для части MVC вашего веб-сайта.

чтобы исправить это, просто переименуйте свой метод во что угодно, кроме dispatcherServlet сказать messageDispatcherServlet.

@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
    MessageDispatcherServlet servlet = new MessageDispatcherServlet();
    servlet.setApplicationContext(applicationContext);
    servlet.setTransformWsdlLocations(true);
    return new ServletRegistrationBean(servlet, "/ws/*");
}