spring-mvc - Spring Boot:带有 @RestController 的 Apache CXF SOAP 用于休息 ws
问题描述
我正在将 SOAP 和 REST 一起用于同一个应用程序。使用 @RestController 和使用 apache cxf 的 SOAP 休息 Web 服务。Rest ws 和soap 路径相同,例如: Rest: GET http://localhost:8080/ws/person SOAP: http://localhost:8080/ws/findPerson
为了配置 cxf servlet,我创建了以下方法
@Bean
public ServletRegistrationBean cxfServletRegistration() {
return new ServletRegistrationBean(new CXFServlet(), "/ws/*"); }
更改后 SOAP 服务运行良好,但 REST (@RestController) 停止工作,但如果我禁用 cxfServletRegistration() 方法,其余 WS 工作正常。
您能否提出任何解决方案让所有 WS 一起工作?
解决方案
你不能,因为每个 servlet 都必须“拥有”它的监听基本路径。尽管缺少显式注册,RestControllers 还是在基本路径上侦听(默认 /*) 你真的需要使用 @RestController 吗?CXF 通过 JAX-RS 支持 REST。
否则,我建议将您的 REST 和 SOAP 功能分开,例如在 /model/... 上有 REST,在 /api/... 上有 SOAP 或一些这样的分离。
推荐阅读
- c - 如何在客户端-服务器应用程序中异步发送文件?(使用 winsock2.h,在 C 中)
- html - 如何使用 Ruby 从 Quora 中获取问题的关注者数量?
- python - 从 PIL 导入图像,ImageTk ImportError:无法导入名称 ImageTk
- node.js - 如何从 app.js 调用 app.post 方法,而无需转到浏览器并运行文件 url-node js?
- reactjs - 在反应中处理连接 Azure AD 与 ADAL
- r - 过滤和分组数据到新的数据框
- javascript - javascript路径中的Wordpress问题
- flutter - 无法将 mobx 集成到简单的颤振应用程序中,该应用程序会在点击时增加计数器
- java - spring security:BadCredendtials 异常未由链处理且未返回 401
- solr - Apache Solr 索引从 4.7 升级到 5.2