全网多种方式解决Knife4j文档请求异常

news2024/11/17 6:36:06

文章目录

  • 1. 复现问题
  • 2. 分析问题
  • 3. 解决问题
  • 4. 其他方法解决此异常
  • 5. 其他说明

1. 复现问题

今天在本地启动项目后,刷新Knife4j接口文档,却报出如下错误:

在这里插入图片描述

Knife4j文档请求异常

2. 分析问题

报出Knife4j文档请求异常错误时,赶紧打开控制台,如下图所示:

在这里插入图片描述

控制台提示为Unchecked runtime.lastError: The message port closed before a response was received.

简单理解就是端口号关闭了,于是查看后端的端口是否关闭:

在这里插入图片描述

后端哪里出现了问题呢?百思不得其解。

正赶上最近ChatGPT很火,于是借助chatGPT来解决我的问题,如下图所示:

在这里插入图片描述

因为是我本地启动的项目,可以排除请求超时的问题。

接下来使用postman来测试登录接口,如下图所示:

在这里插入图片描述

从上图可以看出来,服务器不存在无响应的问题。

因为引入的是Knife4jjar包,不需要写控制器的代码,但需要进行配置。

于是,查看我的Knife4j的配置是否有问题,如下代码所示:

public class Knife4jConfiguration {

  private OpenApiExtensionResolver openApiExtensionResolver;

  @Autowired
  public Knife4jConfiguration(OpenApiExtensionResolver openApiExtensionResolver) {
    this.openApiExtensionResolver = openApiExtensionResolver;
  }

  @Bean(value = "dockerBean")
  public Docket dockerBean() {
    Docket docket =
        new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            // 分组名称
            .groupName("测试服务")
            .select()
            // 这里指定Controller扫描包路径
            .apis(RequestHandlerSelectors.basePackage("com.cloud.test.controller"))
            .paths(PathSelectors.any())
            .build()
            .extensions(openApiExtensionResolver.buildSettingExtensions());
    // 指定使用Swagger2规范
    return docket;
  }

  private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
        // 描述字段支持Markdown语法
        .description("测试Knife4j")
        .termsOfServiceUrl(127.0.0.1)
        .contact(new Contact("test", "无", "无"))
        .version("1.0")
        .build();
  }
}

蓦然发现,我没有添加@Configuration,才导致Knife4j文档请求异常

3. 解决问题

既然没有添加@Configuration,那就按如下方式添加即可:

@Configuration
public class Knife4jConfiguration {

  private OpenApiExtensionResolver openApiExtensionResolver;

  //此处省略上述代码相同的部分
  ......
}

如果上述方法,无法解决你的问题,可以参考以下几种方法。

4. 其他方法解决此异常

  1. 代码中没有添加@EnableSwagger2WebMvc

如果你引入的Knife4jjar包较低,同时,还需要添加@EnableSwagger2WebMvc注解,如下代码所示:

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {

  private OpenApiExtensionResolver openApiExtensionResolver;

  //此处省略上述代码相同的部分
  ......
}
  1. 项目没有正式启动

一般情况,我们启动java项目时,相对来说比较耗时。

也就是说,你在刚启动项目,就去方法Knife4j接口请求文档,也会报出这个错误。

5. 其他说明

  1. 如果你对Knife4j比较感兴趣,可以参考这篇博文:全网最全的Knife4j swaggerj介绍

  2. ChatGPT的介绍

之前喜欢使用谷歌翻译报错的信息,自从出现了ChatGPT,便喜欢使用ChatGPT来翻译。

如果你想了解什么是ChatGPT以及它的用法,可以点击如下链接:

  1. 全网最详细的介绍ChatGPT

  2. ChatGPT、低代码等技术出现会不会导致底层程序员失业

  3. 全网推荐7款github上有趣的ChatGPT的应用源码

  4. 如何调用ChatGPT的API接口到官方例子的说明以及GitHub上的源码应用

  5. 全网详细解读基于java调用ChatGPT的API接口

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生活不一定很酷,但是一定要全力以赴

题记:努力是为了让自己不平庸 当看到这个话题“竞赛那些事”,我还是有所触动的,我本身就是一个不喜欢安逸,喜欢折腾的人,纵使不能把日子过成诗,也要折腾成向往的样子。 我的记忆在脑海中不停翻着页&#x…

黑马redis学习记录:分布式锁

一、基本原理和实现方式对比 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行…

Linux_基本权限

Linux入门第二篇已送达! Linux_基本权限shell外壳权限Linux的用户分类角色划分Linux的文件文件类型查看权限目录的权限默认权限粘滞位shell外壳 为了保护操作系统,用户的指令不能由操作系统直接进行执行,需要一个中间者,比如Linu…

MySQL优化篇-MySQL压力测试

备注:测试数据库版本为MySQL 8.0 MySQL压力测试概述 为什么压力测试很重要?因为压力测试是唯一方便有效的、可以学习系统在给定的工作负载下会发生什么的方法。压力测试可以观察系统在不同压力下的行为,评估系统的容量,掌握哪些是重要的变化…

基于ThinkPHP6.0+Vue+uni-app的多商户商城系统好用吗?

likeshop多商户商城系统适用于B2B2C、多商户、商家入驻、平台商城场景。完美契合平台自营联营加盟等多种经营方式使用,系统拥有丰富的营销玩法,强大的分销能力,支持官方旗舰店,商家入驻,平台抽佣商家独立结算&#xff…

重生之我是赏金猎人-SRC漏洞挖掘(八)-记一次移花接木的GetShell

0x00:前言 https://github.com/J0o1ey/BountyHunterInChina 欢迎亲们点个star 作者:RGM78sec 某天测厂商业务时,发现其中有一个提供音乐播放业务的资产,正好里面有我想听的歌,于是就有了这篇文章 0x01:…

天翼云服务器如何限制端口仅限部分ip地址访问

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 前言 最近买了个服务器,没错,是天翼云的。 客户没有钱,买大厂的太贵舍不得,那就买个普通的吧,经媒人介绍,觉得天翼…

vue小案例

vue小案例 组件化编码流程 1.拆分静态组件,按功能点拆分 2.实现动态组件 3.实现交互 文章目录vue小案例组件化编码流程1.父组件给子组件传值2.通过APP组件给子组件传值。3.案例实现4.项目小细节1.父组件给子组件传值 父组件给子组件传值 1.在父组件中写好要传的值&a…

5min完成linux环境Jenkins的安装

5min搞定linux环境Jenkins的安装安装Jenkinsstep1: 使用wget 命令下载Jenkinsstep2、创建Jenkins日志目录并运行jekinsstep3、访问jenkins并解锁jenkins,安装插件以及创建管理员用户step4、到此,就完成了Finish、以上步骤中遇到的问题1、 jenkins启动不了…

Python爬虫(5)-selenium用显式等待、隐式等待、强制等待,解决反复爬取网页时无法定位元素问题

之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Python爬虫(2)-Selenium控制浏览…

MybatisPlus实现分页效果并解决can‘t found IPage for args!错误

前言 早就知道MybatisPlus对分页进行了处理,但是一直没有实战用过,用的是自己封装的一个分页组件,虽不说麻烦吧,但是也不是特别简单。 写起来还是比较复杂,但是最近这个组件有了点小小的bug,我决定是时候…

公网连接内网工具推荐(还在为局域网联机发愁?)

一、FastNat可为您解决的问题1.没有公网服务器,需要发布本地的站点或网络程序到公网上,供他人访问;此项功能大大方面开发人员进行远程调试,微信小程序等开发工作进行。2.需要远程到在其他网络中的设备,但两处的网络不通…

安装ENVI Py for ArcGIS

目录 软件版本 配置环境 在cmd命令行中输入 启动ArcGIS Pro,点击Start with another template。 在刚才的路径中找到文件ENVIPyManagement.aptx,点击OK。 软件版本 ArcGIS Pro 3.0.2 ENVI 5.6 其他版本请参考官方帮助文档,方法类似。 …

五、HTML之表单

文章目录一、表单的作用1.1 常用控件1.2 宽高自适应1.3 窗口自适应1.4 伪元素选择器1.5 浮动高度塌陷问题1.6 左侧一栏为200px余下的右边栏占余下屏幕一、表单的作用 表单用来收集用户的信息。 语法&#xff1a; <form action "提交地址" method"提交方法…

3.3 ISIS引入路由

实验目的掌握IS-IS引入直连路由的方法掌握IS-IS引入静态路由的方法实验拓扑IS-IS引入路由的实验拓扑如图3-2所示: 图3-2:IS-IS引入路由 实验步骤IP地址的配置R1的配置 <Huawei>system-view [Huawei]undo info-center enable

【实战场景一】设计一个分布式环境下全局唯一的信号器

前面&#xff0c;我们罗列了一些面试时可能会到的一些技术上的问题。但都是基于理论&#xff0c;也就是外面所说的八股文。应付一些基础的或者中级的开发岗位来说&#xff0c;是没什么问题的&#xff0c;但如果想拿高薪&#xff0c;或者升职的话&#xff0c;仅靠八股文是仅仅不…

2022年直播电商成交额,更是达到了24816亿元的成交额

近年来移动网络覆盖率、网速提升&#xff0c;直播行业不在是陌生的行业&#xff0c;直播也诞生了繁多的领域&#xff0c;游戏直播、户外直播等&#xff0c;当然还有今天的主题“直播带货”。直播带货是线上销售模式的一种&#xff0c;由衷是为了更好的把商品展示给用户观看&…

【Redis】Redis 常用数据类型操作 ② ( 数据库操作 | 切换数据库 | 查询当前数据库键个数 | 清空当前数据库 | 清空所有数据库 )

文章目录一、Redis 数据库操作1、切换数据库2、查询当前数据库键个数3、清空当前数据库4、清空所有数据库一、Redis 数据库操作 在之前的博客 【Redis】Redis 数据库 安装、配置、访问 ( Redis 简介 | 下载 Redis 安装包 | 安装 Redis 数据库 | 命令行访问 Redis | 使用可视化工…

保姆级Vue3+Vite项目实战正则在线校验工具

写在前面注&#xff1a;本文首发掘金签约专栏&#xff0c;此为文章同步&#xff01;本文为 Vue3Vite 项目实战系列教程文章第五篇&#xff0c;系列文章建议从头观看效果更佳&#xff0c;大家可关注专栏防走失&#xff01;点个赞再看有助于全文完整阅读&#xff01;此系列文章主…

为什么PMP的含金量会被质疑呢?(含pmp资料)

1、考的人越来越多&#xff0c;物以稀为贵&#xff0c;且PMP也不是非考不可&#xff0c;也不是项目管理的门槛证书&#xff1b; 2、PMP的通过率是越来越高&#xff0c;就有种我上我也行的错觉&#xff0c;随便一考就考过了&#xff0c;还谈什么含金量&#xff1f; 3、PMP考了不…