诡异事件之java.lang.NoSuchMethodError: com.*.vo.CorClnContractFbVO.getFloatCount()Ljava/lang/Integer;

工作这么久,头一次遇到这么诡异的事情,如果有哪位专业人士看到,请帮忙解答吧,如果是碰到这个问题的孩纸也可以参考一下(好人一生平安哦~~~嘎)

事情是这样的,由于接到央行通知,修改系统的基础利率改造,原来的字段类型都是integer要变成BigDecimal类型,想想也就是改个字段类型,映射,数据库,没什么大问题,上就是了,结果~~还是我太年轻啊
由于此处需要进行接口访问,所以第三方在调用的时候提示:

诡异事件之java.lang.NoSuchMethodError: com.*.vo.CorClnContractFbVO.getFloatCount()Ljava/lang/Integer;_第1张图片
文件过早结束~
我就从后台数据库看我们的报错
诡异事件之java.lang.NoSuchMethodError: com.*.vo.CorClnContractFbVO.getFloatCount()Ljava/lang/Integer;_第2张图片

平常看错误都看报错前几句,就能立马找到问题,我就想着
1.是不是代码没有替换完整
2.是不是对方传过来的数据不完整,或者格式问题
3.我在发布到测试环境是也遇到过同样的问题,按照网上说的重新替换了工具jar包(从linux上拉出来,再拖进去就成了,我也没当回事)
结果正式环境竟然又遇到了,虽然是报错的位置不一样,但是开头可都是一样的格式啊~~
最终,我找了半天,把正式环境的代码一个一个放到测试,尝试 终于发现了更新的三个包中的其中一个更新包的问题,由于项目功能较多,所以我们都是增量更新的~
首先测试的更新包和正式环境更新的代码是全部替换的,并且通过反编译文件是替换了的,但是就是报错。
最终为了解决这个问题,我只能把正确的环境(测试环境测试通过的)的更新包与正式环境做代码比对后,发布到正式环境,结果显示系统操作正常。
你说诡不诡异~重点是其他家发布也出现了同样的情况 ~

解决办法:
在大神的推理下,终于找到了问题:修改字段类型不仅要修改vo和映射,在方法调用的时候(文件报错提示的这个class文件–把字段赋值到另一个表的class文件)也要重新编译才能够解决这个找不到的问题。实测有效~

你可能感兴趣的:(java,Spring,Struts2,Hibernate,SpringMVC,Mybaties)