java.lang.NoSuchMethodError异常可能出现的原因
来源:互联网 发布:女装淘宝店铺起名字 编辑:程序博客网 时间:2024/05/24 07:23
感谢博主提供的思路:http://blog.csdn.net/dailywater/article/details/72848770。
最近web项目新增了部分功能,修改了其中一个工具类的方法,本地测试成功后,信心满满的编译class文件后上线,重启tomcat。
本着线上测试走一遍程序的原则,登录,执行相应的操作,哎...哎...哎...,怎么会报错,怎么会,这不科学啊!!!然后我又赶忙替换原来备份的文件让系统先运行着,本着侥幸的心态,可能是线下工具类没有成功编译吧...。重新编译,然后先将class文件反编译下,看下内容,恩恩,这下没问题了,是最新的代码,上线重启,测试。啊啊啊......,还是报错。
开始逐步排查问题,首先排除代码中方法不存在问题,因为上面已经测试了;然后尝试清一下线上tomcat的缓存,清空tomacat的work文件夹和temp文件夹下的内容,确保不是因为缓存问题,发现问题依旧存在。有点小蒙了,上网百度该异常情况,有可能是因为线上java环境与本地测试环境不一致问题,开始排查,jdk版本和tomcat等相关环境一致,本条思路断了。将线上class文件拿回本地反编译后,与本地代码比对,发现方法名称一致,参数类型一致,唯一不同的是方法返回值类型发生了变动,因为需求变动,由void改为long,以前没遇到过这种问题,同样没这方面知识,一开始没去注意,后来只能反复百度帖子,终于在一位大佬的帖中看到了新大陆,然后按照他的思路尝试下,原来是因为方法签名不一致问题,至此问题解决。
回顾问题解决过程,做了下小小的总结,java.lang.NoSuchMethodError异常出现可能有以下几种情况:
1)首先看下异常代码位置,是否存在该方法;
2)若是线下可以,上线出现该问题,清一下服务器tomcat的缓存问题;
3)比对线上java环境,tomcat等于本地测试环境是否一致,若不一致,线下使用相同的环境编译在上线;
4)方法签名是否发生改变,若发生改变,则需要把所有应用到该方法的文件一起替换。
。。
- java.lang.NoSuchMethodError异常可能出现的原因
- 出现 java.lang.NoSuchMethodError 错误的原因及解决方法
- java.lang.NoSuchMethodError的一种可能
- java.lang.NoSuchMethodError的一种可能
- java.lang.NoSuchMethodError的一种可能
- hibernate中java.lang.IllegalArgumentException异常可能的原因
- spring出现java.lang.IllegalStateException异常的几种可能
- 增量部署包出现java.lang.NoSuchMethodError异常解决过程
- 如何解决Android出现的异常“java.lang.NoSuchMethodError: android.widget.LinearLayout.setBackground”?
- 空指针异常可能出现的原因
- 异常之java.lang.NoSuchMethodError
- java.lang.NoSuchMethodError 错误的原因及解决办法
- java 编程中遇到空指针异常的可能原因java.lang.nullpointerexception
- 运行mapreduce程序时出现异常java.lang.RuntimeException: java.lang.ClassNotFoundException的原因
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()异常的解决办法
- 一个“java.lang.NoSuchMethodError”异常引发的思考
- Spring定时服务出现 java.lang.NoSuchMethodError的解决办法
- SpringMVC+Jasperreports出现的java.lang.NoSuchMethodError问题
- libevent 多线程实现高并发
- 算符优先文法的编程实现
- hive快速上手
- ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
- js面试题解析
- java.lang.NoSuchMethodError异常可能出现的原因
- 去掉输入框选择框等在移动端聚焦时出现一闪的情况
- 有分段函数如下,求age(5)。age(n)=10 (n=1) age(n)=age(n-1)+2 n>1
- 大型网站技术架构(四)——网站的高性能架构
- Ubuntu 16.04,双显卡,GTX1060,安装 NVIDIA 显卡驱动
- iis运行网站项目无法加载或初始化请求的服务提供程序
- KM
- Java IO流分析整理
- MVP+OKHTTP+Fresco+RecyclerView+EventBus实现点击传值