SpringBooot3.4集成Swagger knife4j-openapi3 Knife4j文档请求异常

## Pom引入 SpringBooot3.4的版本
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.5.0</version>
</dependency>
## 通常来说Knife4j文档请求异常是没有放通权限和资源导向,通过网上说的加了注册器放通
/**
* @author f2bpm@f2bpm.com
* @version 创建时间:2019年8月23日 下午6:14:59 可以扩展SpringMVC的功能
*/
@Configuration
// public class WebConfig extends WebMvcConfigurationSupport
public class WebConfig implements WebMvcConfigurer { @Bean
public AuthenticationInterceptor authenticationInterceptor() {
return new AuthenticationInterceptor();
}
/**
* 拦截器验证登录身份
*
* @param registry
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 拦截所有请求,但排除这些:excludePathPatterns
registry.addInterceptor(authenticationInterceptor()).addPathPatterns("/**").excludePathPatterns("/resources/**").excludePathPatterns("/static/**")
.excludePathPatterns("/api/cloud/upload")
.excludePathPatterns("/v2/**").excludePathPatterns("/swagger-ui/**").excludePathPatterns("/swagger*/**").excludePathPatterns("/doc.html").excludePathPatterns("*.html").excludePathPatterns("*.js").excludePathPatterns("*.css").excludePathPatterns("/webjars/**")
.excludePathPatterns("/favicon.ico").excludePathPatterns("/ureport/**")
.excludePathPatterns("/resources/**").excludePathPatterns("/error/**").excludePathPatterns("/workflow/public/**").excludePathPatterns("/error").excludePathPatterns("/login/**");
} /**
* 添加特殊的访问路由映射资源到webjars
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("classpath:/resources/");
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
F12依然报错如下图:

## 报http://127.0.0.1:18090/v3/api-docs/swagger-config 500错误
## 后端报错:Knife4j SpringBooot3.4 No converter for [class java.util.LinkedHashMap] with preset Content-Type 'text/html;charset=UTF-8'
找遍全网,没能解决,好吧,只能尝试从了的源代码调试了。
通过跟踪报错的代码位置:

最后下载官网的示例代码跟踪发现:
官网:https://doc.xiaominfo.com/docs/quick-start 代码:knife4j-spring-boot3-demo
在同一位置对比排查,官网的的执行是正常的。

检查各种配置都没有问题。
官网的代码输入这个的是,显然它是一个Html内容的输出。

通过自己的代码工程和官方的代码工程Debug到org.springframework:Spring-webmvc这个AsyncTaskMethodReturnValueHandler.class

发现问题所在了:在EncodingFilter过滤器filter中response的contenttype是
"text/html;charset=UTF-8"

把这行删除或修改为"application/json;charset=UTF-8"即可。
然后问题解决,如下图:


SpringBooot3.4集成Swagger knife4j-openapi3 Knife4j文档请求异常的更多相关文章
- Spring Boot 集成 Swagger 生成 RESTful API 文档
原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...
- springboot 集成 swagger 自动生成API文档
Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案. S ...
- Spring Boot 集成 Swagger,生成接口文档就这么简单!
之前的文章介绍了<推荐一款接口 API 设计神器!>,今天栈长给大家介绍下如何与优秀的 Spring Boot 框架进行集成,简直不能太简单. 你所需具备的基础 告诉你,Spring Bo ...
- .net core 使用swagger自动生成接口文档
前言 swagger是一个api文档自动生动工具,还集成了在线调试. 可以为项目自动生成接口文档, 非常的方便快捷 Swashbuckle.AspNetCore 是一个开源项目,用于生成 ASP.N ...
- golang学习笔记7 使用beego swagger 实现API自动化文档
golang学习笔记7 使用beego swagger 实现API自动化文档 API 自动化文档 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/doc ...
- go实践之swagger自动生成api文档
文章目录 go实践之swagger自动生成api文档 1.安装需要用到的包 2.接口代码支持swagger 3. 生成swagger接口 go实践之swagger自动生成api文档 作为一个后端开发, ...
- spring boot使用swagger生成api接口文档
前言 在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档 具体可以查看本站spring boot ...
- Swagger UI教程 API 文档神器 搭配Node使用 web api 接口文档 (转)
http://www.68idc.cn/help/makewebs/qitaasks/20160621620667.html 两种方案 一.Swagger 配置 web Api 接口文档美化 二.通过 ...
- 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档.
- spring boot / cloud (三) 集成springfox-swagger2构建在线API文档
spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...
随机推荐
- 【Linux】1.1 Linux课程介绍
Linux课程介绍 1. 学习方向 linux运维工程师: 维护linux的服务器(一般大型企业) linux嵌入式工程师: linux做驱动开发,或者linux的嵌入式 linux下开发项目 2. ...
- C# Socket 使用教程
我在学习Socket时,总是感觉文章看不懂,视频又好长,所以留下这篇学习笔记,权当做同学间学习参考,与个人回顾吧. 简介 Socket(译做:管道/套接字)是一个便捷的类 用于封装通信时所涉及到复杂底 ...
- Oracle SQL%ROWCOUNT
SQL%ROWCOUNT 用于记录受影响的行数, 必须紧跟在一个新增/修改/删除类语句后. 当执行多条修改语句时, 按照 sql%rowcount 之前执行的最后一条语句受影响行数为准. 应用场景 可 ...
- Golang解决fatal error: all goroutines are asleep - deadlock!
今天进行一个协程操作demo时总是报错 //workerpool.go package main import ( "fmt" "time" ) //工作线程 ...
- Laravel配置Route调用artisan
//web调用artisan Route::get('/artisan', function(\Illuminate\Http\Request $request) { $all = \Illumina ...
- github项目收集
web模块 Nginx 监控模块vts: https://github.com/vozlt/nginx-module-vts
- 经典常用SQL查询语句和常见问题
一.基础 1.常用sql: ------------------------ // mysql改root密码 mysqladmin -u用户名 -p旧密码 password 新密码 # ---more ...
- EF Core Demo1——初识DbContext
EF中的上下文(DbContext)简介 DbContext是实体类和数据库之间的桥梁,DbContext主要负责与数据交互,主要作用: 1.DbContext包含所有的实体映射到数据库表的实体集 ...
- Python 潮流周刊#99:如何在生产环境中运行 Python?(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- Spring基于注解的AOP事务控制
Spring基于注解的AOP事务控制 源码 代码测试 pom.xml <?xml version="1.0" encoding="UTF-8"?> ...