NoSuchMethodError问题分析

问题

上线时发现好多error日志,定睛一看是报警功能的异常,要呵呵。看异常大概是这样:


image.png

怎么可能,其它地方调用这个方法正常,IDEA里显示的代码也是有这个方法的。

解决思路

这个方法真的存在吗?仔细对比方法签名。报错方法签名后面有个V,这个代表方法返回值是void类型。

问题复现

common1、common2、middle、tester分表代表基础包版本1、基础包版本2、对基础包的封装、测试类

基础模块

两个版本差别是一个没有返回值,一个有返回值


image.png
image.png

中间包

它引用common1(必须是common1),简单封装一下。


image.png

测试包

它应用common2和middle,middle把common1排除掉。


image.png

问题分析

image.png

看middle中的SendMsg字节码,发现使用Producer的send方法是不带返回值的。

由于tester升级了common1为common2,导致Producer没有那个方法了。


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,314评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,409评论 25 709
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,622评论 11 349
  • 旅游 陌黎 我们时常想逃离城市 于是,就想到了旅游 去看看大自然的山水风光 去一些很原生态的地方 我们知道 我们只...
    伊甸园没有春天阅读 201评论 0 0
  • 我们大家都知道html、css不属于编程语言属于标记语言,所以很难像js一样定义变量、编写方法实现模块化,而目前的...
    奶瓶SAMA阅读 456评论 0 0

友情链接更多精彩内容