Knife4j 4.5.0 与 Spring Boot 3.x 版本兼容问题解决方案
参考
Knife4j · 集 Swagger2 及 OpenAPI3 为一体的增强解决方案
兼容版本说明
Knife4j 4.5.0
- 底层依赖 Swagger 兼容版本:springdoc-openapi-starter-webmvc-ui 2.3.0
Spring Boot 3.x.x +
- 只支持 OpenAPI3 规范
报错内容
Knife4j 异常
访问 http://localhost:8080/doc.html#/home 解析不到内容。
Swagger UI 异常
访问 http://localhost:8080/swagger-ui/index.html 报错提示:Unable to render this definition The provided definition does not specify a valid version field.
JSON 外部工具 api-docs 异常
访问 localhost:8080/v3/api-docs 返回通用统一返回 DTO 格式异常。
{"code": 500, "msg": "Handler dispatch failed: java.lang.NoSuchMethodError: 'java.util.List org.springdoc.core.properties.SpringDocConfigProperties.getGroupConfigs()'", "data": null}
后端控制台异常内容
jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: 'java.util.List org.springdoc.core.properties.SpringDocConfigProperties.getGroupConfigs()' at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1104) ~[spring-webmvc-6.2.8.jar:6.2.8] ...
Caused by: java.lang.NoSuchMethodError: 'java.util.List org.springdoc.core.properties.SpringDocConfigProperties.getGroupConfigs()' at com.github.xiaoymin.knife4j.spring.extension.Knife4jOpenApiCustomizer.addOrderExtension(Knife4jOpenApiCustomizer.java:75) ~[knife4j-openapi3-jakarta-spring-boot-starter-4.5.0.jar:na]


