Knife4j文档请求异常问题及解决过程
作者:喜七er
解决再学习黑马苍穹外卖项目Swagger时遇到的Knife4j请求异常问题,通过自检、检查SpringBoot版本兼容性、更改项目SpringBoot版本和启动项目等步骤,最终成功解决并访问到Swagger接口页面
再学习黑马苍穹外卖项目swagger时,按照相同的配置方式,再更改数据库用户名和密码后,启项目时请求swagger生成的接口文档时遇到了Knife4j请求异常的问题,经过数小时努力,现已解决,方法如下,可供参考:
一、根据Knife4j官方异常处理
参考方法自检:
https://doc.xiaomi nfo.com/docs/faq/knife4j-exception
二、检查Spring Boot 版本兼容性
首先,确保您了解您的项目所使用的Spring Boot版本。
以下是一些常见的Spring Boot版本及其对应的Knife4j版本兼容推荐:
| Spring Boot版本 | Knife4j Swagger2规范 | Knife4j OpenAPI3规范 |
|---|---|---|
| 1.5.x~2.0.0 | <Knife4j 2.0.0 | >=Knife4j 4.0.0 |
| 2.0~2.2 | Knife4j 2.0.0 ~ 2.0.6 | >=Knife4j 4.0.0 |
| 2.2.x~2.4.0 | Knife4j 2.0.6 ~ 2.0.9 | >=Knife4j 4.0.0 |
| 2.4.0~2.7.x | >=Knife4j 4.0.0 | >=Knife4j 4.0.0 |
| >= 3.0 | >=Knife4j 4.0.0 | >=Knife4j 4.0.0 |
Knife4j在之前的版本更新中,逐渐提供了一些服务端适配的增强特性功能。
三、更改项目Spring Boot版本
1.将项目中父模块sky-take-out的pom.xml文件中父依赖Spring Boot 改为2.7.3
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.7.3</version>
</parent>2.将工程中所有knife4j依赖版本号改为3.0.2
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>3.更改项目java编译器的版本 使用jdk11即可。操作如下:点击File-->Project Structer

4.同时做如下更改 同样将Spring Boot的编译版本改为11


5.以上更改完成后,还需要做出最后一步,在maven中对父工程install:

四、启动项目
访问http://localhost:8080/doc.html,可以访问如下的swagger接口页面,至此问题就解决了。

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
