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

SpringFox 3.0.0调用v3/api-docs时出现运行时错误求助

解决Spring Boot 2.7.4 + SpringFox 3.0.0 v3/api-docs空指针问题

问题根源

SpringFox 3.0.0对OpenAPI 3(对应/v3/api-docs接口)的适配存在兼容性问题,尤其是与Spring Boot 2.7.x默认启用的新路径匹配策略冲突,导致处理v3文档生成时触发空指针异常。

解决步骤

1. 调整Spring MVC路径匹配策略

Spring Boot 2.6+默认使用PATH_PATTERN_PARSER路径匹配器,但SpringFox 3.0.0未完全适配该策略,需改回旧版的ANT_PATH_MATCHER:

  • 在application.properties中添加:
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
  • 或在application.yml中添加:
spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

2. 修正Docket Bean配置

确保同时配置支持OpenAPI 3和Swagger 2的Docket实例,避免仅配置SWAGGER_2导致v3接口无对应处理逻辑:

@Configuration
public class SwaggerConfig {

    // 配置OpenAPI 3.0对应的Docket
    @Bean
    public Docket openApi() {
        return new Docket(DocumentationType.OAS_30)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.your.package.controller"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

    // 保留Swagger 2对应的Docket(如需继续使用/v2/api-docs)
    @Bean
    public Docket swagger2() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.your.package.controller"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("API文档")
                .version("1.0")
                .build();
    }
}

3. 检查并清理依赖

确保Maven依赖仅包含SpringFox 3.0.0的官方starter,避免与旧版依赖冲突:

<dependencies>
    <!-- SpringFox 3.0.0核心依赖 -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>
    <!-- Swagger UI依赖 -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>
</dependencies>

注意:移除旧版的springfox-swagger2依赖,防止版本冲突。

4. 重启应用验证

完成上述配置后重启应用,访问http://localhost:8080/v3/api-docs即可正常获取OpenAPI 3格式的文档。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:40:33