解决swagger报错404的问题

在写swagger的时候,启动类没有报错,当在8080端口访问的时候,报错404未找到

原依赖和类如下

<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger2</artifactId>
   <version>3.0.0</version>
</dependency>
<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger-ui</artifactId>
   <version>3.0.0</version>
</dependency>
@Configuration
@EnableSwagger2
public class SwaggerConfig{

    @Bean
    public Docket getDocket(){
//        docket封装接口文档信息

        //封面信息
        ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder();
        apiInfoBuilder.title("锋迷商城后端接口说明文档")
                .description("此文档详细说明了锋迷商城后端接口规范")
                .version("v 2.0.1")
                .contact(new Contact("zzd","www.liangge.com","1031155817@qq.com"));
        ApiInfo apiInfo = apiInfoBuilder.build();

        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.qfedu.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

经过网上查询,得知MVC没有找到swagger-ui包中的swagger-ui.html

接着我写了WebConfig类

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/statics/**").addResourceLocations("classpath:/statics/");
        // 解决 SWAGGER 404报错
        registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

可还是报错,真的很头大。

后来又查资料,看文章,总结出可能是swagger版本和springboot版本有些不匹配的问题。之后我就把pom中swagger和swagger-ui的版本从原来的3.0.0改成2.9.2。神奇的是可以运行了!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐