SSM项目配置Swagger以及遇到问题的解决

Posted 被雨遗忘的夏天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSM项目配置Swagger以及遇到问题的解决相关的知识,希望对你有一定的参考价值。

目录

一、 Maven引入依赖

二、相应的配置文件处理,指向swagger配置类

三、 swagger配置类

四、 遇到的问题

4.1 图片显示

4.2 错误提示信息

4.3 原因

4.4 解决

五、 测试

5.1 运行成功

5.2 接口测试


一、 Maven引入依赖

<!-- Swagger 配置 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>

二、相应的配置文件处理,指向swagger配置类

<!-- Swagger配置 -->
    <bean name="applicationSwaggerConfig" class="com.lishaoyu.BookReview.utils.SwaggerConfig"/>

三、 swagger配置类

package com.lishaoyu.BookReview.utils;

/**
 * @className: SwaggerConfig
 * @author: lsy
 * @description: swagger配置类
 * @date: 2021/8/11 16:16
 * @version: 1.0
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .genericModelSubstitutes(DeferredResult.class)
                .useDefaultResponseMessages(false)
                .forCodeGeneration(false)
                .pathMapping("/")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.lishaoyu.BookReview.controller"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("api文档")
                .description("简单优雅的restfun风格")
                .version("1.0")
                .build();
    }


}

四、 遇到的问题

4.1 图片显示

4.2 错误提示信息

java.lang.IllegalStateException: Failed to introspect Class [com.lishaoyu.BookReview.utils.SwaggerConfig] from ClassLoader [ParallelWebappClassLoader
  context: ROOT
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@26f0a63f
]
Caused by: java.lang.NoClassDefFoundError: springfox/documentation/service/ApiInfo
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
	at java.lang.Class.getDeclaredMethods(Class.java:1975)
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:463)
	... 40 common frames omitted
Caused by: java.lang.ClassNotFoundException: springfox.documentation.service.ApiInfo
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1328)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157)
	... 44 common frames omitted

4.3 原因

虽然maven那里没有报错,但是很显然是没有加载到Swagger类,分析后,应该是工程没有引入新增的jar包!老毛病了!

4.4 解决

五、 测试

5.1 运行成功

 

5.2 接口测试

@Api(tags = "BookController")
@Controller
public class BookController {
  
    /**
     * 显示首页
     * @return
     */
    @ApiOperation(value = "显示首页")
    @GetMapping("/")
    public ModelAndView showIndex(){
        ModelAndView mav = new ModelAndView("/index");
        List<Category> categoryList = categoryService.selectAll();
        mav.addObject("categoryList", categoryList);
        return mav;
    }
}

 

以上是关于SSM项目配置Swagger以及遇到问题的解决的主要内容,如果未能解决你的问题,请参考以下文章

SSM非springboot配置swagger2

前后端分离ssm配置swagger接口文档

登录综合案例02,退出完善,菜单权限,以及遇到的一些问题,前端使用vue+elementui+axios 后端 springboot+mybatis-plus+swagger2,

SSM面向CRUD编程专栏 3关于黑马程序员最全SSM框架教程视频,P37集老师跳过的模块创建以及tomcat下载安装配置和运行等诸多问题

Spring boot 接入swagger以及使用

Spring+Swagger文档无法排序问题解决