Knife4j文档请求异常(基于SpringBoot3,查找原因并解决)
博主采用的是SpringBoot3+knife4j的框架,如果你采用的是SpringBoot2框架,那么可以看下面这几篇:
Knife4j文档请求异常 | Knife4j
记一次集成swagger2(Knife4j)在线文档异常,提示:Knude4j文档请求异常_knife4j文档请求异常-CSDN博客全网多种方式解决Knife4j文档请求异常-CSDN博客
博主最近做苍穹外卖时碰到了一个问题,Knife4j文档请求异常,如下图所示:
于是F12打开控制台准备进行debug,发现报出如下错误:
大致意思是JSON返回了一个token,继续从网络的响应查找:
发现响应码(200)正常,并且返回格式为json,查看响应内容:
居然是一长串字符串,而不是Json数据。于是到了最令人烦躁的debug环节,从编辑器控制台查看没有任何ERROR甚至WARN信息:
2024-01-09T15:17:43.508+08:00 INFO 22868 --- [ main] com.sky.SkyApplication : Starting SkyApplication using Java 17.0.8 with PID 22868 (E:\Code\sky_take_out_proj\sky_take_out\sky_server\target\classes started by User in E:\Code\sky_take_out_proj\sky_take_out) 2024-01-09T15:17:43.510+08:00 INFO 22868 --- [ main] com.sky.SkyApplication : The following 1 profile is active: "dev" 2024-01-09T15:17:44.228+08:00 INFO 22868 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode 2024-01-09T15:17:44.230+08:00 INFO 22868 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. 2024-01-09T15:17:44.265+08:00 INFO 22868 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 23 ms. Found 0 Redis repository interfaces. 2024-01-09T15:17:44.830+08:00 INFO 22868 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2024-01-09T15:17:44.837+08:00 INFO 22868 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2024-01-09T15:17:44.837+08:00 INFO 22868 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16] 2024-01-09T15:17:44.920+08:00 INFO 22868 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-01-09T15:17:44.920+08:00 INFO 22868 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1369 ms Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts 2024-01-09T15:17:45.242+08:00 INFO 22868 --- [ main] com.sky.config.WebMvcConfiguration : 开始注册自定义拦截器... 2024-01-09T15:17:45.908+08:00 INFO 22868 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2024-01-09T15:17:45.917+08:00 INFO 22868 --- [ main] com.sky.SkyApplication : Started SkyApplication in 3.027 seconds (process running for 3.722) 2024-01-09T15:17:45.919+08:00 INFO 22868 --- [ main] com.sky.SkyApplication : server started 2024-01-09T15:19:13.412+08:00 INFO 22868 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2024-01-09T15:19:13.413+08:00 INFO 22868 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2024-01-09T15:19:13.414+08:00 INFO 22868 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms 2024-01-09T15:19:14.040+08:00 INFO 22868 --- [nio-8080-exec-6] o.springdoc.api.AbstractOpenApiResource : Init duration for springdoc-openapi is: 261 ms
突然想起来之前设置过一个消息转换器,将Date类型转换为yyyy-MM-dd HH:mm格式去显示,于是考虑是否因为消息转换器,将JSON数据不正常解析了?
/** * 扩展消息转换器,将日期类型从列表转换为时间戳 * @param converters 消息转换器列表 */ @Override protected void extendMessageConverters(List> converters) { MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); jackson2HttpMessageConverter.setObjectMapper(new JacksonObjectMapper()); converters.add(converters.size()-1,jackson2HttpMessageConverter); }
一些参考文章:
MappingJackson2HttpMessageConverter使用及jackson配置原理和避坑说明-CSDN博客
一步到位 SpringBoot 序列化与消息转换器 (你需要的这里都有)_springboot 序列化 自定义转换器-CSDN博客
为什么说HttpMessageConverter的顺序非常重要_SpringBoot
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。