1. 问题背景与现象描述
最近在使用SpringBoot 3.x集成Knife4j开发"苍穹外卖"项目时,遇到了一个棘手的问题:Knife4j文档页面无法正常显示,控制台报错"Knife4j文档请求异常"。这个错误在SpringBoot 2.x环境下也有不少开发者遇到过,但SpringBoot 3.x的解决方案略有不同。
具体现象是:访问Knife4j文档页面时,界面显示异常,F12打开浏览器控制台可以看到报错信息。从网络请求来看,虽然响应状态码是200,但返回的内容却是一长串字符串而非标准的JSON数据。最令人困惑的是,项目日志中没有任何ERROR或WARN级别的错误信息,这给问题排查带来了很大难度。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 问题排查过程
2.1 初步检查与错误分析
首先,我检查了Knife4j的基本配置,确认依赖和注解都正确无误。项目使用的是SpringBoot 3.1.5和Knife4j 4.3.0版本,相关配置如下:
java复制@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("苍穹外卖项目接口文档")
.version("1.0")
.description("苍穹外卖项目接口文档")
