Зависимости от моего pom:
2.2.5.RELEASE для Spring 3.3.5 для CXF
- spring-boot-starter
- spring-boot- пусковой привод
- spring-boot-starter-web
- spring-boot-devtools
- spring-boot-configuration-процессор
- spring-boot- starter-tomcat
- тест начальной загрузки пружины
- cxf-spring-boot-starter-jaxws
- ведение журнала cxf-rt-features
Вот настройки сервера, определенные в application.yml:
server:
port: 8080
servlet:
context-path: /cs
Первый сервлет - это конечная точка CXF JAXWS, настроенная следующим образом:
// https://github.com/apache/cxf
@Bean(name=Bus.DEFAULT_BUS_ID)
public SpringBus springBus() {
return new SpringBus();
}
@Bean
public IFileNetWSSoap documentService() {
return new DocumentServiceEndpoint();
}
@Bean
public Endpoint endpoint() {
EndpointImpl endpoint = new EndpointImpl(springBus(), documentService());
endpoint.setServiceName(fileNetWS().getServiceName());
endpoint.setWsdlLocation(fileNetWS().getWSDLDocumentLocation().toString());
endpoint.publish(properties.getDocumentEndpoint());
Binding binding = endpoint.getBinding();
((SOAPBinding)binding).setMTOMEnabled(true);
return endpoint;
}
В настоящее время прослушивание по этому адресу : http://localhost: 8080 / cs / services / document-service_1.0
Второй сервлет - это javax.servlet.http.HttpServlet (прямо сейчас TomCat) :
@WebServlet(urlPatterns = {"/image-service_1.0"})
public class ImageServiceEndpoint extends HttpServlet {
@Autowired
private BusinessService businessServices;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
this.businessServices.imageRetrieval(request, response);
}
}
В настоящее время слушаю по этому адресу: http://localhost: 8080 / cs / image-service_1.0
И, наконец, есть сервлет привода пружинной загрузки.
C срочно слушаю по этому адресу: http://localhost: 8080 / cs / привод
У меня вопрос "Как я могу настроить WebServlet для прослушивания сегмента CXF без ломать все? например, http://localhost: 8080 / cs / services / image-service_1.0
Мне стало известно, что, возможно, мне следует использовать Spring MVC Контроллер вместо сервлета. Единственное требование, предъявляемое к этому идентификатору конечной точки, - принимать параметры строки запроса и передавать двоичный контент обратно вызывающей стороне.