开发环境,NoSuchMethodError异常原因排查和解决

1 问题描述
开发环境,苍穹日志出现NoSuchMethodError异常。以下图为例,com.alibaba.dubbo.config.ProviderConfig报错,其setInstanceId方法没有找到。

2 整体思路
(1)根据异常堆栈,找到全限定名(包名+类名)
(2)idea编辑器中,双击shift,全局搜索类文件,查找类冲突的jar包
(3)解决方式:如果确认是类冲突,可以在gradle中,配置加载顺序。java类加载器遵循 首次加载原则,让正确的类被首次加载,即可解决问题。
3 排查流程案例
以上述异常为例,详细排查流程如下
(1)根据上图的调用堆栈可以得知,DubboBeanManager在调用ProviderConfig的setInstanceId方法时,抛出了NoSuchMethodError异常。
(2)查找DubboBeanManager的import,发现引入了com.alibaba.dubbo.config.ProviderConfig这个类

(3)idea编辑器中,双击shift,全局搜索类文件,发现存在两个com.alibaba.dubbo.config.ProviderConfig类,但是所在的jar包不一样。一个在bos-mservice-dubbox-1.0.jar,另一个在dubbo-2.8.4.jar

(4)对比两个ProviderConfig,发现bos-mser
开发环境,NoSuchMethodError异常原因排查和解决
1 问题描述 开发环境,苍穹日志出现NoSuchMethodError异常。以下图为例,com.alibaba.dubbo.config.ProviderConfig报错,其setInstanceI...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



