nested exception is java.lang.NoSuchMethodError

记录一下Jrebel遇到的坑nested exception is java.lang.NoSuchMethodError

在项目中使用的Jrebel进行的热部署,在我对实体类进行了字段的添加或者类型更改之后。有时候会出这个异常,查看了class文件,没有问题。网上好多答案都是说是jar版本冲突。
但是问题没有解决!
原来是因为
NoSuchMethodError没有找到相关的方法,你编译能通过.这只能说明你的编译环境和你运行时环境的CLASSPATH有区别.这个问题打个断点或者把运行时对应的class反编译一下就能找到差别了.
因为jrebel会通过agenttransform修改class字节码.你需要找到jrebel配置的classdir,在对应的目录中找到PoiExcel2k3Helper文件,通过javap就可以查看对应的字节码.可能在这个文件中你定义的readExcelInArray方法是只有1个参数.
还有一个可能就是你的classpath环境中有2个PoiExcel2k3Helper文件,因为编译,运行时加载class的顺序不一致导致,你调用的方法也不一样.
至于查看运行时classpath环境,你通过classload加载class查看该类对应的方法就行.
ClassLoaderloader=Test.class.getClassLoader();
System.out.println(loader.getResource(“foo/Test.class”));
通过上面的代码,你可以知道class的来源.
## 解决办法
最简单的就是清空maven clean, 在重新启动

后来看了这篇文章才得到解决
[转载自](https://www.imooc.com/wenda/detail/559661)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值