Spring Boot集成CXF时如何禁用WebService服务列表页面?
解决CXF占用根路径显示服务列表的问题
你的问题源于cxf.path=/将CXF核心Servlet映射到了Web应用的根路径,导致访问http://localhost:8080/abc/def/时,CXF默认的服务列表页面优先响应,覆盖了你的Web应用页面。以下是两种针对性的解决方法:
方法一:直接禁用CXF服务列表页面
在application.properties中添加配置,关闭CXF自带的服务列表功能:
cxf.servlet.init-param.service-list-filter=disabled
添加后,访问根路径http://localhost:8080/abc/def/时,请求会自动交由Spring MVC的DispatcherServlet处理,正常显示你的Web应用页面,同时http://localhost:8080/abc/def/service?wsdl的WSDL地址不受任何影响。
方法二:调整CXF的Servlet映射路径(可选)
如果希望彻底避免CXF占用根路径,可以修改cxf.path配置调整CXF入口,同时适配端点发布路径以保持WSDL地址符合需求:
- 修改
application.properties:
server.port=8080 server.servlet.context-path=/abc/def cxf.path=/service
- 调整端点注册代码,将发布路径改为根路径:
@Bean public Endpoint endpoint(MySoapService service) { Endpoint endpoint = Endpoint.create(service); endpoint.publish("/"); return endpoint; }
调整后WSDL地址依然是http://localhost:8080/abc/def/service?wsdl,根路径则会由你的Web应用正常响应。
内容的提问来源于stack exchange,提问作者Stanja
相关产品推荐
相关产品推荐

