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文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...
随机推荐
- 【JVM之内存与垃圾回收篇】垃圾回收概述
垃圾回收概述 概念 这次我们主要关注的是黄色部分,内存的分配与回收 垃圾收集 垃圾收集,不是 Java 语言的伴生产物.早在 1960 年,第一门开始使用内存动态分配和垃圾收集技术的 Lisp 语言诞 ...
- golang的条件编译
写c/c++或者rust的开发者应该对条件编译不陌生,条件编译顾名思义就是在编译时让代码中的一部分生效或者失效,从而控制编译时的代码执行路径,进而影响编译出来的程序的行为. 这有啥用呢?通常在编写跨平 ...
- sql连接处理
序言 数据存储是一个很重要的话题,小到C里面的struct,到os的一个个数据表,大到一个个数据库软件乃至单纯提供数据存储和访问服务的集群,提供数据的快速访问.持久化维护.崩坏数据的恢复,数据的加密维 ...
- zookeeper选主机制
Zookeeper选主机制 一.Server工作状态 每个Server在工作过程中有四种状态: LOOKING:竞选状态,当前Server不知道leader是谁,正在搜寻. LEADING:领导者状态 ...
- 从零实现富文本编辑器#3-基于Delta的线性数据结构模型
数据模型的设计是编辑器的核心基础,其直接影响了选区模型.DOM模型.状态管理等模块的设计.例如在quill中的选区模型是index + len的表达,而slate中则是anchor + focus的表 ...
- php uninx时间戳转datetime对象,获取n秒前的dateime问题
当时在网上搜了下这个问题,大多方法都是定义一个函数,在里面处理,后来网官网文档看到可以这么用,记录下. php时间戳转datetime对象 var_dump(new \Datetime('@'.tim ...
- 有的时候,需要利用UserControl占位模板,动态替换的情况,绑定后无法获取DataContext的问题
有的时候,需要利用UserControl占位模板,动态替换的情况,绑定后无法获取DataContext的问题,特此备注下 效果如下: 关键的地方是,下面第3行,需要把当前的上下文传递到Content, ...
- bat文件简短
bat文件 @echo off F: cd\pictures\projectStreet\FloatingShinyKnot-main node server.js cd\ bat静默运行(但会闪一下 ...
- 解决NET Core发布iis项目覆盖原有的项目时"另一个程序正在使用此文件,进程无法访问"
解决NET Core发布iis项目覆盖原有的项目时"另一个程序正在使用此文件,进程无法访问" 现在net core运用的多了,一系列的问题接踵而来,更新项目发布到iis时就有一个坑 ...
- Java--Calendar类,Date类的简单使用,日期的格式化
package demo; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; / ...