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

SpringFox 2.9.2版本无法访问Swagger RequestHandlerSelectors版本冲突如何解决

Correct the classpath of your application so that it contains a single, compatible version of springfox.documentation.builders.RequestHandlerSelectors

问题产生原因
  • 核心原因是应用类路径下存在多个版本的SpringFox相关依赖,导致springfox.documentation.builders.RequestHandlerSelectors类出现版本冲突,JVM实际加载的类版本和SpringFox 2.9.2要求的版本不兼容。
  • 常见触发场景:
    • 项目直接引入了多个不同版本的springfox-core、springfox-swagger2、springfox-swagger-ui依赖
    • 项目依赖的第三方组件传递引入了其他版本的SpringFox依赖
    • 本地构建缓存异常,旧版本SpringFox依赖残留,打包时被打入应用
排查与解决方法

1. 排查依赖冲突

  • Maven项目执行命令:mvn dependency:tree | grep springfox,输出所有SpringFox相关依赖的版本和引入来源
  • Gradle项目执行命令:gradle dependencies | grep springfox,梳理所有SpringFox依赖的传递关系
  • 检查输出结果,标记所有非2.9.2版本的SpringFox依赖,确认其引入路径

2. 处理冲突依赖

  • 若为直接引入多版本SpringFox:仅保留2.9.2版本的springfox-swagger2和springfox-swagger-ui依赖,删除其余版本的SpringFox直接依赖
  • 若为第三方组件传递引入冲突版本:在对应第三方依赖的声明中排除SpringFox传递依赖,Maven配置示例:
<dependency>
    <groupId>冲突依赖所属groupId</groupId>
    <artifactId>冲突依赖所属artifactId</artifactId>
    <version>冲突依赖版本</version>
    <exclusions>
        <exclusion>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </exclusion>
    </exclusions>
</dependency>
  • 如需统一锁定所有SpringFox依赖版本,可在依赖管理节点添加配置,Maven示例:
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-core</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
    </dependencies>
</dependencyManagement>

3. 清理缓存重新构建

  • 清理项目构建缓存:Maven执行mvn clean,Gradle执行gradle clean
  • 清理IDE缓存后重启IDE,重新构建项目启动验证

适配注意事项

  • SpringFox 2.9.2与SpringBoot 2.6及以上版本存在默认路径匹配策略冲突,解决依赖冲突后仍无法访问的,可在配置文件添加配置:spring.mvc.pathmatch.matching-strategy=ant_path_matcher
  • 确认Swagger配置类已添加@EnableSwagger2注解,RequestHandlerSelectors的引用路径无误

内容的提问来源于stack exchange,提问作者Raaghavi Ravisankar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:36:04