Я работаю над SOAP и REST вместе в одном приложении. Веб-сервис Rest с @RestController и SOAP с apache cxf. Остальные ws и мыло имеют одинаковый путь, например: Остальное: GET http: // локальный: 8080 / WS / человек SOAP: http: // локальный: 8080 / ws / findPerson
Для настройки сервлета cxf я создаю следующий метод
@Bean
public ServletRegistrationBean cxfServletRegistration() {
return new ServletRegistrationBean(new CXFServlet(), "/ws/*"); }
Служба SOAP работает нормально после изменения, но REST (@RestController) перестает работать, но если я отключу метод cxfServletRegistration (), остальные WS работают нормально.
Не могли бы вы предложить какое-нибудь решение, чтобы все WS работали вместе?





Вы не можете, потому что каждый сервлет должен «владеть» своим базовым путем прослушивания. Несмотря на отсутствие явной регистрации, RestControllers прослушивают базовый путь (по умолчанию / *). Вам действительно нужно использовать @RestController? CXF поддерживает REST через JAX-RS.
В противном случае я бы предложил разделить ваши функции REST и SOAP, такие как наличие REST в / model / ... и SOAP в / api / ... или какое-то такое разделение.