You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot集成JAX-RS与Apache CXF后Swagger UI 404问题求助

排查Swagger UI 404问题的思路
  • 确认Spring对JAX-RS资源的扫描有效性
    引入Spring后,资源扫描逻辑可能被接管。检查你的JAX-RS端点类是否被Spring正确加载——可以在应用启动日志中搜索端点类名称,确认存在加载记录。如果使用Spring Boot,要保证注册JAXRSServer的配置类带有@Configuration注解,且所在包在Spring的扫描范围内。

  • 验证Swagger2Feature的注册是否生效
    在注册JAXRSServer的Bean代码中,手动打印Swagger2Feature的配置参数(比如basePath、resourcePackage),确认这些配置和非Spring环境下一致。同时排查是否有Filter或Interceptor拦截了Swagger的请求路径(默认常见路径为/swagger、/swagger-ui),可以在请求链路中添加日志,追踪请求是否到达JAX-RS处理层。

  • 检查Swagger UI的访问路径是否冲突
    Spring MVC的DispatcherServlet可能和JAX-RS的Servlet路径产生冲突,导致Swagger请求被Spring MVC接管而无法匹配到正确的处理逻辑。查看web.xml或Spring配置中DispatcherServlet的映射路径,如果它映射了/*,而JAX-RS Servlet映射了/api/*,那么Swagger UI的访问路径可能需要调整为/api/swagger-ui(而非原来的根路径下的路径)。

  • 核对依赖版本兼容性
    Java 8环境下,要确保swagger-jaxrs等Swagger组件版本与Spring版本兼容。部分高版本Swagger组件已不再支持Java 8,或与Spring存在版本冲突。建议尝试降级Swagger相关依赖到适配Java 8的稳定版本(如swagger-core 1.5.x系列),同时确认spring-context、spring-web等依赖版本与Swagger无冲突。

  • 验证Docker/Kubernetes环境的路径映射
    容器化后可能存在Ingress或Service的路径映射错误。检查K8s的Ingress规则,确认Swagger UI的路径已正确转发到容器内的对应端口和路径;同时核对Docker容器的端口映射配置,确保应用端口已对外暴露,外部请求能正常到达容器内的服务。

  • 排查Spring Security的拦截规则
    如果引入了Spring Security,默认会拦截所有请求。需要在Security配置类中添加放行规则,允许匿名访问Swagger相关路径,比如/swagger/**、/v2/api-docs、/swagger-ui.html等,避免这些请求被Security拦截导致404。

内容的提问来源于stack exchange,提问作者Jeff Mitchell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:55:06