当前位置: 首页 > news >正文

maven项目运行时NoSuchMethodError问题排查记录(依赖冲突解决)

控制台异常如下:

Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: 
org.apache.commons.io.input.BoundedInputStream.builder()Lorg/apache/commons/io/input/BoundedInputStream$Builder;

问题明显,根据NoSuchMethodError可以看出是没有指定方法错误,有以下几种情况:

  1. maven 依赖版本冲突,导致其他依赖调用另一个依赖时没有指定方法;
  2. 通过反射来获取 class 方法时,类中没有指定方法。

以上两种情况属于常见情况,另外,如果自己写的代码调用依赖方法没有指定方法时,编译就会报错,这种情况忽略。

通过反射没有获取到指定方法这个问题应该比较好排查,只要根据控制台打印的异常位置,就可以定位到问题所在,然后直接修改问题代码

但是对于依赖冲突来说,稍微比较麻烦一些。下面提供排查方法。

异常原因:不同依赖可能会使用相同的依赖,如依赖A和依赖B中都使用了依赖C,但是开发者使用的依赖C版本可能会不一样,项目运行时只会使用一个版本的依赖(这里会有依赖优先选择性,具体可以自己去找),如A中的C有getName方法,但是B中的C没有,但是项目运行时使用的是B中的C,那么A调用C没有getName方法,然后就会报NoSuchMethodError。

  1. 首先,你需要分析控制台异常。根据上面异常得出:org.apache.commons.io.input 下的 BoundedInputStream 类没有 builder 方法;
  2. 然后通过 maven helper 工具(idea插件)查看 pom 依赖冲突,看到是否有 org.apache.commons.io 的依赖冲突;
  3. 可以点击 exclude 排除依赖,也可以自己定位依赖版本问题

打开 pom.xml,如果安装了 maven helper 左下角应该会有 dependency analyzer 标签,点击即可看到
在这里插入图片描述
左边是冲突的依赖,右边是冲突依赖来源,右键依赖来源可以选择跳转依赖树、跳转到资源依赖、排除依赖
在这里插入图片描述
通过跳转依赖树我们就会得知冲突依赖所在模块及所属依赖,然后可以根据需求排除依赖

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.verion}</version><exclusions><exclusion><artifactId>poi-ooxml-schemas</artifactId><groupId>org.apache.poi</groupId></exclusion></exclusions>
</dependency>

相关文章:

maven项目运行时NoSuchMethodError问题排查记录(依赖冲突解决)

控制台异常如下&#xff1a; Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.apache.commons.io.input.BoundedInputStream.builder()Lorg/apache/commons/io/input/BoundedInputStream$Builder;问题明显&#xff0c;根据NoSuchMethodError…...

ECharts关系图-关系图11,附视频讲解与代码下载

引言&#xff1a; 关系图&#xff08;或称网络图、关系网络图&#xff09;在数据可视化中扮演着至关重要的角色。它们通过节点&#xff08;代表实体&#xff0c;如人、物体、概念等&#xff09;和边&#xff08;代表实体之间的关系或连接&#xff09;的形式&#xff0c;直观地…...

【C语言】动态内存管理:详解malloc和free函数

前言 在C语言编程中&#xff0c;动态内存分配是一个非常重要的概念。与静态内存分配不同&#xff0c;动态内存分配允许程序在运行时根据需要分配和释放内存&#xff0c;从而更加灵活地管理内存资源。特别是在一些数据结构的引用中经常需要使用&#xff0c;下面我们就详细讲解一…...

EGO Swarm翻译

目录 摘要 Ⅰ 介绍 Ⅱ 相关工作 A . 单四旋翼局部规划 B . 拓扑规划 C. 分布式无人机集群 Ⅲ 基于梯度的局部规划隐式拓扑轨迹生成 A.无需ESDF梯度的局部路径规划 B.隐式拓扑轨迹生成 Ⅳ 无人机集群导航 A 机间避碰 B. 定位漂移补偿 C. 从深度图像中去除agent Ⅴ …...

Linux根目录

在Linux系统中&#xff0c;文件系统遵循一种标准化的目录结构&#xff0c;即文件系统层次结构标准&#xff08;Filesystem Hierarchy Standard&#xff0c;FHS&#xff09;。 根目录&#xff08;/&#xff09; /bin&#xff1a;包含二进制可执行文件&#xff0c;通常是用户和系…...

SAP-SD-参照退货订单补货时带不出行项目

业务场景&#xff1a; 当物料出现质量问题时&#xff0c;客户需要换货&#xff0c;不需要退款&#xff0c;就需要先做退货订单&#xff0c;然后参照退货订单进行补货&#xff0c;创建补货订单&#xff0c;但是创建补货订单时只是把抬头数据带入补货订单&#xff0c;没有带入行项…...

12-C语言单向链表

一、链表的概述 1.链表与数组对比 遍历数组中的数据&#xff0c;查询数据比较方便&#xff0c;但往数组中插入、删除数据需要移动大量数据&#xff1b;相反。链表遍历、查询数据不方便&#xff0c;但是插入、删除数据比较方便&#xff0c;不需要移动大量数据&#xff0c;直接…...

2024年11月 蓝桥杯青少组 STEMA考试 Scratch真题

2024年11月 蓝桥杯青少组 STEMA考试 Scratch真题&#xff08;选择题&#xff09; 题目总数&#xff1a;5 总分数&#xff1a;50 选择题 第 1 题 单选题 Scratch运行以下程宇后&#xff0c;小兔子会&#xff08; &#xff09;。 A. 变小 B. 变大 C. 变色 D. …...

FFmpeg 4.3 音视频-多路H265监控录放C++开发二十一.2,RTP协议-RTP协议概述,协议详情

前提: 为什么要学习 RTP&#xff08;Real-time Transport Protocol&#xff09;重点 简介&#xff1a;RTP是一个实时传输媒体数据的协议&#xff0c;通常与RTSP一起使用。它负责在网络上传输音视频数据。特点&#xff1a;RTP通过UDP或TCP传输媒体数据&#xff0c;提供时间戳和序…...

Linux系统编程——系统内核中的信号

目录 一、前言 二、系统内核中的信号 三、sigset_t 四、信号集操作 1、sigpending(); 2、sigemptyset(); 3、sigfillset(sigset_t *set); 4、int sigaddset ()和sigdelset() ​编辑 5、sigismember() 6、sigprocmask() 五、信号集操作代码演示 六、深入理解进程的信…...

delve调试环境搭建—golang

原文地址&#xff1a;delve调试环境搭建—golang – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 由于平时不用 IDE 开发环境&#xff0c;习惯在 linux终端vim 环境下开发&#xff0c;所以找了golang的调试工具&#xff0c;delve类似gdb的调试界…...

shell脚本的循环-----while和for循环

一、while 1.格式 while 条件表达式; do 命令 done 2.案例 &#xff1a; ping测试子网段的主机网段由用户输入&#xff0c;例如用户输入192.168.101 &#xff0c;则ping192.168.101.125 — 192.101.131 UP&#xff1a; /tmp/host_up.txt Down: /tmp/host_down.txt &#…...

【游戏设计原理】21 - 解谜游戏的设计

你想象一下&#xff0c;刚坐下准备玩游戏&#xff0c;想着“今天得挑战一下我的智商极限&#xff01;”可结果碰上一个谜题&#xff0c;傻眼了&#xff0c;心里默念&#xff1a;“这啥玩意儿&#xff1f;这游戏是在玩我吗&#xff1f;”如果这个谜题太简单了&#xff0c;你可能…...

【漏洞复现】Wordpress GutenKit 插件 远程文件写入致RCE漏洞复现(CVE-2024-9234)

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 一、漏洞概述 1.1漏洞简介 漏洞名称:Wordpress GutenKit 插件 远程文件写入致RCE漏洞复现漏洞编号:CVE-2024-9234漏洞威胁等级:超危影响范围:GutenKit <= 2.1.0…...

深度学习任务简介:分类、回归和生成

深度学习任务简介&#xff1a;分类、回归和生成 文章目录 深度学习任务简介&#xff1a;分类、回归和生成一、分类任务&#xff08;Classification Task&#xff09;什么是分类任务&#xff1f;**分类任务的常见应用**分类任务的输出主要算法 二、回归任务&#xff08;Regressi…...

【测试】Unittest

近期更新完毕&#xff0c;建议关注收藏&#xff01; 目录 简介TestCaseTestSuiteTestRunnerTestLoaderFixture tips:ctrl? 可以看方法的help文档 简介 python自带的单元测试框架&#xff0c;也可以做自动化测试 组织多个用例去执行&#xff0c;用例都是用单独的目录存放的 丰…...

java 根据路径下载文件转换为MultipartFile,并且上传到服务器

直接上代码 controller层 GetMapping("/downloadAndUploadAttachment")UpdateOperationLogging(msg "根据路径下载文件转换为MultipartFile,并且上传到服务器")Operation(summary "根据路径下载文件转换为MultipartFile,并且上传到服务器", de…...

Onvif服务端开发

实现了Onvif服务端的设备搜索和RTSP流的功能。用 ONVIF Device Manager 测试工具可以成功搜索到设备和获取到RTSP流&#xff0c;有的路由器可能不支持239.255.255.250组播&#xff0c;我一开始用的电信的那种光猫路由器二合一的&#xff0c;一直搜不到设备&#xff0c;后面用So…...

【jvm】主要参数

Java 虚拟机&#xff08;JVM&#xff09;有许多参数用于控制其行为和性能&#xff0c;下面是一些 主要的 JVM 启动参数&#xff0c;这些参数通常分为以下几类&#xff1a; 内存管理相关参数 这些参数主要用来配置 JVM 的内存分配策略、堆内存、栈内存等。 -Xms 设置 JVM 启动…...

【优选算法】—移动零(双指针算法)

云边有个稻草人-CSDN博客 想当一名牛的程序员怎么能少的了练习算法呢&#xff1f;&#xff01; 今天就立即开启一个新专栏&#xff0c;专干算法&#xff0c;提高算法能力&#xff08;废柴的我也在准备蓝桥杯哈哈&#xff09;—— 目录 1.【 283. 移动零 - 力扣&#xff08;Lee…...

MarkDownload:如何用浏览器扩展解决网页内容保存的三大痛点

MarkDownload&#xff1a;如何用浏览器扩展解决网页内容保存的三大痛点 【免费下载链接】markdownload A Firefox and Google Chrome extension to clip websites and download them into a readable markdown file. 项目地址: https://gitcode.com/gh_mirrors/ma/markdownlo…...

从四皇后到N皇后:回溯算法的核心思想与实战演练

1. 从棋盘游戏到算法思维&#xff1a;四皇后问题入门 记得我第一次接触四皇后问题时&#xff0c;正坐在大学算法课的教室里。教授用粉笔在黑板上画出一个4x4的棋盘&#xff0c;然后突然转身问我们&#xff1a;"如果让你们来摆放这四个皇后&#xff0c;保证她们互不攻击&am…...

程序员副业指南:CSDN变现全攻略

程序员副业图谱&#xff1a;CSDN技术变现路径分析核心逻辑 围绕技术变现场景构建结构化框架&#xff0c;从技术栈适配性、市场需求匹配度、时间投入产出比三个维度建立评估模型技术咨询类副业路径技术问答悬赏CSDN问答模块的答题变现机制高价值技术领域识别&#xff08;云原生/…...

5分钟掌握B站音频提取:BilibiliDown开源工具的完整指南

5分钟掌握B站音频提取&#xff1a;BilibiliDown开源工具的完整指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/…...

环境管理从未如此简单:Miniconda-Python3.9镜像快速入门指南

环境管理从未如此简单&#xff1a;Miniconda-Python3.9镜像快速入门指南 1. 为什么选择Miniconda-Python3.9镜像 Python作为当今最流行的编程语言之一&#xff0c;在数据科学、机器学习和Web开发等领域有着广泛应用。但Python环境管理一直是开发者面临的痛点之一&#xff0c;…...

PIPAL数据集实战:如何用Elo评分系统提升图像质量评估的准确性

PIPAL数据集实战&#xff1a;如何用Elo评分系统提升图像质量评估的准确性 在计算机视觉领域&#xff0c;图像质量评估&#xff08;IQA&#xff09;一直是算法研发的关键环节。随着生成对抗网络&#xff08;GAN&#xff09;等技术的突破&#xff0c;传统IQA方法逐渐暴露出局限性…...

用YOLOv8在树莓派上跑个‘狗脸识别’:斯坦福犬类数据集实战与轻量化部署指南

树莓派上的智能犬种识别&#xff1a;YOLOv8轻量化部署全流程实战 当你在公园遛狗时&#xff0c;有没有遇到过路人好奇询问狗狗品种的情况&#xff1f;传统的犬种识别往往依赖专业兽医或资深养犬人士的经验判断&#xff0c;而今天我们将用一块信用卡大小的树莓派&#xff0c;配合…...

【超详细】前端必备:从0到1吃透JavaScript闭包,附真实项目避坑指南

文章目录第一章 从“变量生命周期”开始&#xff0c;重新理解作用域链1.1 一个让新手困惑的面试题&#xff1a;循环中的var与let1.2 作用域链的形成&#xff1a;函数定义位置决定了一切第二章 闭包的工程价值&#xff1a;从封装到模块化2.1 数据私有化&#xff1a;用闭包实现真…...

DataQA数问增长:金融小贷行业的“智能风控大脑“实战揭秘

数问"Web渠道转化率仅0.2&#xff0c;欺诈风险高、客户资质差——你的渠道投放预算&#xff0c;有多少正在打水漂&#xff1f;" &#x1f4a1; 真实场景还原&#xff1a;某头部消费金融公司的渠道危机 时间&#xff1a;2026年3月&#xff0c;周一上午9:00 角色&…...

python基于Hadoop的就业推荐系统的设计与实现 Spark+Hadoop+Hive 大数据 深度学习 机器学习

前言随着就业市场信息不对称问题日益突出&#xff0c;开发高效的智能就业推荐系统 成为当务之急。本研究基于Hadoop生态系统&#xff0c;设计并实现了一套面向求职者和招聘企业的智能推荐系统。系统采用分布式架构&#xff0c;后端基于Django框架实现业务逻辑处理&#xff0c;前…...