Spring 启动:Apache CXF SOAP 和 @RestController 用于 rest ws

Spring Boot : Apache CXF SOAP with @RestController for rest ws

我在同一个应用程序中同时使用 SOAP 和 REST。使用 @RestController 休息 Web 服务,使用 apache cxf 休息 SOAP。 其余ws和soap路径相同,例如: 休息:得到http://localhost:8080/ws/person 肥皂:http://localhost:8080/ws/findPerson

为了配置 cxf servlet,我创建了以下方法

@Bean 
public ServletRegistrationBean cxfServletRegistration() {
                return new ServletRegistrationBean(new CXFServlet(), "/ws/*");  }

SOAP 服务在更改后 运行 正常,但 REST (@RestController) 停止工作,但如果我禁用方法 cxfServletRegistration(),其余 WS 工作正常。

您能否提出任何使所有 WS 协同工作的解决方案?

你不能,因为每个 servlet 必须 "own" 其侦听基本路径。尽管没有显式注册,RestControllers 还是会监听基本路径(默认 /*) 你真的需要使用 @RestController 吗? CXF 通过 JAX-RS 提供 REST 支持。

否则,我建议将您的 REST 和 SOAP 功能分开,例如在 /model/... =]