knife4j/swagger救援第一现场

1、前方来报,测试环境springboot项目无法启动,现场如下:

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
[ERROR] 2024-03-20 12:54:42,718 --main-- [org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter]

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in springfox.documentation.swagger.schema.ApiModelPropertyPropertyBuilder required a bean of type 'springfox.documentation.spring.web.DescriptionResolver' that could not be found.


Action:

Consider defining a bean of type 'springfox.documentation.spring.web.DescriptionResolver' in your configuration.

 

2、现场痕迹很明显,类ApiModelPropertyPropertyBuilder中需要一个bean DescriptionResolver,但是无法找到,故直接走入现场,如下图所示:

3、根据经验得知是bean DescriptionResolver无法被正常注入导致的,很大情况可能是因为jar冲突导致,寻找蛛丝马迹,如下图所示:

4、定位到原因是项目中引用其他项目中的jar,结果导致了项目中有两个不同版本的knife4j-spring-boot-starter(一个2.0.2,一个2.0.7),简单粗暴,把版本都调整为2.0.2。原本想着到这里问题都已经解决了。下意识的看了下前端swagger接口是否正常,结果发现swagger接口展示有问题:

页面提示:Knife4j文档请求异常
页面console控台提示:Unexpected token ' in JSON

5、谷歌浏览器前端debug一顿调试,定位问题是因为后端返回的数据结构有问题,根本原因因为版本2.0.2较低,无法解析ApiModelProperty中的example属性为json字符串,如下图所示:

属性使用ApiModelProperty注解后,在给与example类型的时候里面写了一个json字符串

@ApiModelProperty(name="xx",example="{'xx':'dd'}")
private String test;

就是类似以上这种情况,导致springfox-swagger提供的接口/v2/api-docs返回的json非法,使用前端的JSON.parse()函数无法转换为JSON对象

6、处理方案:

a、knife4j统一使用版本2.0.2去掉example

b、knife4j统一使用版本2.0.7或其他版本,可以支持example

至此问题解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/486414.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

layui框架实战案例(25):laydate中mark的数据后端生成

mark,自定义日期标记。该属性是对 calendar 属性的进一步延伸,灵活度更高。属性可批量设置多个日期标记,如: mark: {0-10-14: 生日, //每年每月的某一天0-0-10: 工资, // 每月 10 号2008-8-8: 开幕, // 指定的日期 }其中日期的格式…

如何在Linux系统使用Docker本地部署Halo网站并实现无公网IP远程访问

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 1. Docker部署Halo1.1 检查Docker版本如果未安装Docker可…

[Linux初阶]which-find-grep-wc-管道符命令

目录 一.which 二.find a.-name b.-size 三.grep 四.wc 五.管道符(|) 五.总结 一.which 语法格式: which [命令] Linux中的一个个命令,本体上就是一个个的二进制可执行程序(相当于windows中的.exe文件). 在Linux中,一切皆文件. which命令:用于查看指定命令的可执行…

恒创科技:服务器反应慢如何解决?

​  通常来说,访问者会在最初的几秒钟内决定是留在您的网站还是离开。如果页面加载时间超过五秒,访问者离开的可能性就会增加 90%。所以,作为站长们,必须减少服务器响应时间,以确保其网站加载速度更快。以下是减少网…

ceres-solver-1.14.0安装教程

引言 简单记录下安装ceres-solver-1.14.0的过程,简单了解。 1、下载安装包 wget ceres-solver.org/ceres-solver-1.14.0.tar.gz 2、安装依赖 sudo apt-get install -y cmake libgoogle-glog-dev libatlas-base-dev libsuitesparse-dev3、 cd ceres-solver-1.14…

【包远程安装运行】SpringBoot+Mysql+Vue实现的4S店保养与维修系统源码+运行视频+包运行+开发文档

今天发布的是一款由SpringBootVueMysql实现的4S店保养与维修后台管理系统,该系统共分为两个角色,具体的功能如下: 管理员功能:供应商管理、采购管理、品牌管理、维修报单管理、车型管理、配件管理、车辆信息管理、套餐管理、维修记…

力扣HOT100 - 11. 盛最多水的容器

解题思路&#xff1a; 双指针&#xff0c;从左右两边往内侧夹逼&#xff0c;遍历后得到最大值 class Solution {public int maxArea(int[] height) {int i 0, j height.length - 1, res 0;while(i < j) {res height[i] < height[j] ? Math.max(res, (j - i) * heig…

如何在Linux系统使用宝塔面板搭建Inis博客并发布至公网【内网穿透】

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总…

Paper Digest|基于在线聚类的自监督自蒸馏序列推荐模型

论文标题&#xff1a; Leave No One Behind: Online Self-Supervised Self-Distillation for Sequential Recommendation 作者姓名&#xff1a; 韦绍玮、吴郑伟、李欣、吴沁桐、张志强、周俊、顾立宏、顾进杰 组织单位&#xff1a; 蚂蚁集团 录用会议&#xff1a; WWW 2024 …

【计算机】——51单片机——持续更新

单片机是一种内部包含CPU、存储器和输入/输出接口等电路的集成电路&#xff08;IC芯片&#xff09; 单片机是单片微型计算机&#xff08;Single Chip Microcomputer&#xff09;的简称&#xff0c;用于控制领域&#xff0c;所以又称为微型控制器&#xff08;Microcontroller U…

STM32CubeMX 生成的代码框架解析 - 最小化工程篇(含FreeRTOS)

文章目录 前言1. 创建工程说明2. 目录结构介绍2.1 总目录2.2 Core文件夹2.3 Drive文件夹2.4 MKD-ARM2.5 Middlewares2.6 IDE配置文件 3. 重点文件介绍3.1 Core文件夹3.1.1 srcfreertos.cmain.cstm32l4xx_hal_msp.cstm32l4xx_it.csystem_stm32l4xx.c 3.1. 2 includeFreeRTOSConf…

java 高级面试题(借鉴)(下)

雪花算法原理 第1位符号位固定为0&#xff0c;41位时间戳&#xff0c;10位workId&#xff0c;12位序列号&#xff0c;位数可以有不同实现。 优点&#xff1a;每个毫秒值包含的ID值很多&#xff0c;不够可以变动位数来增加&#xff0c;性能佳&#xff08;依赖workId的实现…

挺后悔,我敷衍地回答了“程序员如何提升抽象思维“

分享是最有效的学习方式。 博客&#xff1a;https://blog.ktdaddy.com/ 大家好&#xff0c;我是老猫。 大概在月初的时候&#xff0c;我发了一篇文章【当程序员之后&#xff1f;(真心话)】,在这篇文章中&#xff0c;提及了抽象思维对一名程序员的重要性。可能说得也比较笼统&a…

UML 类关系表示

类之间关系&#xff1a;依赖、泛化&#xff08;继承&#xff09;、实现、关联、聚合与组合 类与类、类与接口之间的关系表示&#xff1a; 纵向关系&#xff1a;继承、实现 横向关系&#xff1a;依赖、关联、聚合与组合&#xff0c;从强到弱依次为&#xff1a;组合、聚合、关联…

文献学习-22-Surgical-VQLA:具有门控视觉语言嵌入的转换器,用于机器人手术中的视觉问题本地化回答

Authors: Long Bai1† , Mobarakol Islam2† , Lalithkumar Seenivasan3 and Hongliang Ren1,3,4∗ , Senior Member, IEEE Source: 2023 IEEE International Conference on Robotics and Automation (ICRA 2023) May 29 - June 2, 2023. London, UK Abstract: 尽管有计算机辅…

反沙箱思路总结

文章目录 反调试反沙箱时间对抗环境检测 反虚拟机黑DLL父进程检测傀儡进程后记 反调试 IsDebuggerPresent #include<windows.h> #include<stdio.h> BOOL check() {return IsDebuggerPresent(); } BOOL isPrime(long long number){if (number < 1)return FALSE…

水下蓝牙耳机哪个好?必看4款购买单,拒绝踩雷!

在当今的科技时代&#xff0c;无线蓝牙耳机已经成为了我们生活中不可或缺的一部分。无论是运动、工作还是休闲娱乐&#xff0c;一款好的蓝牙耳机都能为我们带来极大的便利和乐趣。然而&#xff0c;在水下使用蓝牙耳机却是一个相对特殊的应用场景&#xff0c;需要考虑到防水、防…

关系(一)利用python绘制散点图

关系&#xff08;一&#xff09;利用python绘制散点图 散点图 &#xff08;Scatterplot&#xff09;简介 在笛卡尔座标上放置一系列的数据点&#xff0c;检测两个变量之间的关系&#xff0c;这就是散点图。 散点图可以了解数据之间的各种相关性&#xff0c;如正比、反比、无相…

[linux]--关于进程概念(下)

目录 孤儿进程 环境变量 将程序放到PATH路径下 设置PATH环境变量 设置别名 环境变量相关的命令 环境变量的组织方式​编辑 通过系统调用获取环境变量 环境变量通常是具有全局属性的 进程优先级 查看系统进程 用top命令更改已存在进程的nice&#xff1a; 程序地址空…

【Python实战】——神经网络识别手写数字

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…