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/... =]
我在同一个应用程序中同时使用 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/... =]