关于Exception in thread “main“ java.lang.NoSuchMethodError: 报错的解决方法

言少不失 2024-10-09 17:35:01 阅读 56

今天在进行项目框架搭建完成,启动测试的时候出现了这样的问题:

根据报错信息应该是spring框架中SpringFactoriesLoader这个类中的forDefaultResourceLocation方法不存在。

于是在依赖项中排查相应的maven库

分析springframework,发现在springframework:spring-core中是有这个方法的,

但是有两个不同版本的包

在5.323的版本中是没有的

这下破案了,应该是依赖时使用了错误的包,有的包使用的是5.323的版本,而有的使用的是6.04的版本,怎么解决呢?

使用了@Anakki在java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationAwareOrderComparator.sort-CSDN博客这篇文章中的方法查看了依赖结构

emmmmm,全部依赖的都是 6.0.4和6.1.0,这就奇怪了,为什么会爆出这样的错误呢,也没有看到什么错误的依赖

直接不作不休了,上maven文件夹把5.23的jar包删掉试试,如果报错就说明项目引用的实际上还是5.23

IDEA,启动!

有趣的事情发生了,还真是这个包的问题,可是我查了maven的依赖中并没有这个包啊?有没有大佬给点思路?

啊啊啊啊啊想起来了,我这是个多模块项目,刚才光盯着主模块看了,没想到可能是子模块的依赖项目出问题

我们直接对子模块进行依赖关系分析

还真是这个玩意引用了5.3.23的包,怎么个事,怎么别的项目都是6.04就它这么特殊?

原来是我创建子模块的时候手残了没有把spring boot的版本设置成跟主模块相同的3.02啊,那没事了。

重新设置好版本,运行maven clean,重新maven install

Yes,这回没有那个5.3.23了,WebApplition,启动!

啊这,问题不大问题不大,原来是我没设置数据库的url,先把这个在pom文件中注释掉……

成功运行好耶!

总结一下:浪费了好几个小时,最终发现是自己太粗心emmmmm,好在在解决问题的过程中学到了很多IDEA的使用方法和依赖问题的解决方案,所以说还算不亏?(但是这粗心的毛病什么时候能改改啊)



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。