swagger+javax/xml/bind/DatatypeConverter+aop各种问题

文章目录

  • 一、No operations defined in spec!
    • 1.问题图片
    • 2.解决方法
  • 二、java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
    • 1.问题图片
    • 2.解决方法
  • 三、AOP切点不够精确问题
    • 1.问题描述
    • 2.解决方案
  • 总结

一、No operations defined in spec!

这是swagger报的错:一个接口都没有了,空空的。查了下原因是因为swagger没有找到注解标识的接口。

  • 那么就可能是路径错了
  • 或者注解没有正确使用

1.问题图片

在这里插入图片描述

2.解决方法

我的问题是这里包的路径写错了,修改为正确的路径解决。

 @Beanpublic Docket createRestApi() {return new Docket(DocumentationType.OAS_30).enable(true).securitySchemes(Collections.singletonList(HttpAuthenticationScheme.JWT_BEARER_BUILDER
//                        显示用.name("JWT").build())).securityContexts(Collections.singletonList(SecurityContext.builder().securityReferences(Collections.singletonList(SecurityReference.builder().scopes(new AuthorizationScope[0]).reference("JWT").build()))// 声明作用域.operationSelector(o -> o.requestMappingPattern().matches("/.*")).build())).select().apis(RequestHandlerSelectors.basePackage("com.cms.controller")) // 设置扫描路径.build();}

除了我的这个情况,还可以尝试以下方法:

  1. 检查 Swagger 规范文件:确保 Swagger 规范文件中正确定义了 API 操作,包括每个接口的路径、请求方法、参数、响应等信息。如果规范文件中确实没有定义任何操作,就会出现这个错误。

  2. 检查 Swagger 注解:在代码中使用 Swagger 注解时,确保每个接口都有正确的注解,包括 @ApiOperation、@Api、@ApiParam 等,这些注解会被 Swagger 解析生成 API 文档。

  3. 重启应用程序:有时候重新启动应用程序可以解决一些 Swagger 显示问题,尝试重启应用程序看看是否能够解决这个错误。

  4. 更新 Swagger 版本:如果以上方法都无效,考虑更新 Swagger 相关的依赖库到最新版本,有时候新版本可能修复了一些 bug 或问题。

二、java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

1.问题图片

在这里插入图片描述

2.解决方法

这是我登录的时候出现的问题:同样的代码,jdk版本,但是一个项目报错,一个项目不报错。
我查了下解决方案:

  • 引入依赖,实践成功
implementation 'javax.xml.bind:jaxb-api:2.3.1'
  • 检查 JDK 版本:确保项目使用的 JDK 版本与相关依赖库兼容。推荐使用较旧版本的 JDK,因为较新版本的 JDK 中移除了一些 Java EE 相关的类。

  • 指定 Java EE 模块路径:如果你使用的是较新的 JDK,可以尝试通过 --add-modules java.xml.bind 参数指定 Java EE 模块路径,以使 DatatypeConverter 类可用。

  • 更新相关库:如果使用的是第三方库,尝试更新到最新版本,有时候新版本会修复此类依赖问题。

三、AOP切点不够精确问题

1.问题描述

通过AOP进行记录操作日志,因为引入了swagger,就想要直接使用controller的注解ApiOperation作为切点。
但是由于我有一些接口时服务之间相互调用的,这就导致了我aop记录日志的时候会把调用的接口以及调用子服务的接口全部都记录下来,这不是我的初衷。

2.解决方案

  • 精确切点,使用within和&&来控制条件
  • &&,必须满足两个条件
  • within,包及子包下的所有类
 // 切点@Pointcut("within(com.cms.controller..*) && @annotation(io.swagger.annotations.ApiOperation)")public void pointcut() {}

总结

在项目开发中,遇到 “No operations defined in spec!” 错误时,需要检查Swagger规范文件和注解是否正确定义,尝试重启应用程序或更新Swagger版本;
对于"java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter"错误,可添加相关依赖库、检查JDK版本兼容性或指定Java EE模块路径;
而针对AOP切点不够精确的问题,应当优化切点表达式、使用更具体的条件来定义切点,确保准确匹配目标方法。

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

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

相关文章

代码随想录算法训练营 DAY20 | 二叉树(7)

一、LeetCode 530 二叉搜索树的最小绝对值 题目链接:530.二叉搜索树的最小绝对值https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 思路一:利用搜索二叉树的中序遍历结果为有序数组的性质,将遍历结果保存到数组中&#xf…

【Google SEO】SEO指标

SEO最难的事情之一就是: 你怎么知道你正在做的事情是否真的有效? 这是一个很难回答的问题。特别是因为SEO可能需要几个月的时间才能真正发挥作用。 好吧,今天您将确切地看到要跟踪的SEO指标。如何跟踪它们。以及如何加倍努力,为…

阿里云香港轻量应用服务器是什么线路?

阿里云香港轻量应用服务器是什么线路?不是cn2。 阿里云香港轻量服务器是cn2吗?香港轻量服务器不是cn2。阿腾云atengyun.com正好有一台阿里云轻量应用服务器,通过mtr traceroute测试了一下,最后一跳是202.97开头的ip,1…

分库分表面试必背

一,背景 随着互联网的普及,使用人数和场景爆炸式增长,现在随便一个应用系统都可能达到数百万千万甚至更大数量级的数据。大量的数据带来了新的挑战,怎么快速完成增删改查的业务,是应用服务开发者最头痛的问题。面对这个…

Linux网络编程套接字

目录 认识端口号认识传输层协议TCP/UDP网络字节序socket编程接口实现简单的UDP网络程序实现远程执行服务器shell指令Windows套接字编写UDP实现一个简单的聊天室实现简单的TCP网络程序TCP实现一个中英互译程序守护进程原理 认识端口号 在进行网络通信的时候是不是我们两台机器…

grafana配置钉钉告警模版(一)

1、配置钉钉告警模版 创建钉钉告警模版,然后在创建钉钉告警时调用模版。 定义发送内容具体代码 my_text_alert_list 是模版名称后面再配置钉钉告警时需要调用。 {{/* 定义消息体片段 */}} {{ define "my_text_alert_list" }}{{ range . }}告警名称&…

SpringAop是什么?

简单介绍: AOP:Aspect Oriented Programming (面向切面编程、面向方面编程),其实就是面向特定方法编程。 场景: 比如现在有一个需求,我要统计每一个业务方法的耗时时长, 我们只需在业务方法的前面获取一个…

srs 边缘集群

srs官方关于边缘集群的介绍: Edge Cluster | SRS 本篇分析一下边缘集群中上行边缘节点的处理逻辑。 关于上行的边缘节点: SRS对于上行边缘,采取直接代理方式,并没有采取边缘缓存方式。所谓边缘缓存方式,即推流到边…

操作系统概念

一、概念 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括: 内核(进程管理,内存管理,文件管理,驱动管理)其他程序(例如函数库&…

区块链技术和Hyperledger Fabric介绍

1 区块链介绍 1.1 区块链技术形成 1.1.1 起源 在比特币诞生之时,技术专家们开始研究比特币的底层技术,并抽象提取出来,形成区块链技术,或者称分布式账本技术。 1.1.2 定义 简称BT(Blockchain technology&#xff…

【递归】【后续遍历】【迭代】【队列】Leetcode 101 对称二叉树

【递归】【后续遍历】Leetcode 101 对称二叉树 解法一: 递归:后序遍历 左右中解法二: 迭代法,用了单端队列 ---------------🎈🎈对称二叉树 题目链接🎈🎈------------------- 解法一…

Eclipse - Code Templates

Eclipse - Code Templates References Window -> Preferences -> C/C -> Code Style -> Code Templates 配置默认代码模板,可以点击 Export 将自己配置好的 Code Templates 导出去,以便备份和共享。 References [1] Yongqiang Cheng, https…

Docker原理及概念相关

Docker最核心的组件 image:镜像,构建容器,也可以通过Dockerfile文本描述镜像的内容。 (我们将应用程序运行所需的环境,打包为镜像文件) Container:容器 (你的应用程序,就跑在容器中 ) 镜像仓库(dockerhub)(…

应急响应实战笔记02日志分析篇(5)

第5篇:MySQL日志分析 常见的数据库攻击包括弱口令、SQL注入、提升权限、窃取备份等。对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源。 0x01 Mysql日志分析 general query log能记录成功连接和每次执行的查询,我们…

《白话C++》第10章 STL和boost,Page84 shared_ptr示例使用,容器中的指针

容器中的指针在容器解体时经常忘了释放&#xff1f;指针存放在容器中多次&#xff0c;结果被重复释放&#xff1f;这个问题&#xff0c;通过std::shared_ptr都可以完美地解决&#xff1a; #include <iostream> #include <list> #include <vector> #include …

如何使用Net2FTP部署本地Web网站并实现远程文件共享

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一&#xff0c;特别是智能设备的大面积使用&#xff0c;无论是个人…

【DBeaver+mysql】如何在DBeaver中创建mysql服务的连接并新建数据库

一、创建步骤 1、下载安装mysql 8.0&#xff08;注意&#xff0c;安装过程会启动mysql服务&#xff0c;这才是能用命令行执行node处理sql语句的关键&#xff09; 下载地址&#xff1a;https://dev.mysql.com/downloads/file/?id526407 2、下载安装DBeaver数据库管理IDE 3、在…

优化线性回归模型的代价函数

目录 前言1 代价函数与线性回归模型2 单变量线性回归3 双变量线性回归4 优化过程结论 前言 线性回归是机器学习领域中最基础的模型之一&#xff0c;它通过找到最佳拟合直线来预测连续型输出变量。在线性回归中&#xff0c;代价函数&#xff08;Cost Function&#xff09;起着至…

查询获取SMBIOS的方法

一、用于在本地查询 SMBIOS 的示例 PowerShell 脚本 Microsoft网站参考 以下 ChassisTypes 列表是从最新的 DMTF SMBIOS 规范复制的。 # Set-ExecutionPolicy or Script Signing documentation needs to be reviewed # Current script is designed to run on individual mach…

x86下使用硬件实现的任务切换(TSS表)---使用代码讲解

实现任务切换(使用TSS) 视频讲解可以看这一个课程 • The current program, task, or procedure executes a JMP or CALL instruction to a TSS descriptor in the GDT. • The current program, task, or procedure executes a JMP or CALL instruction to a task-gate descri…