这个异常简直折磨人的很,throw出这个异常,一般都是因为JVM的"全盘负责委托机制"引发的问题。
是酱紫的,在类路径下放置了多个不同版本的类包,例如xxx.0.0.1.jar和xxx.0.0.2.jar都位于类路径中,我们的代码中用到了xxx.0.0.1.jar版本的某个方法,而这个方法在xxx.0.0.2.jar中并不存在,JVM加载类时碰巧又从xxx.0.0.2.jar中加载类,这样在运行的时后就会抛出java.lang.NoSuchMethodError的异常错误。
该问题的排查是灰常恶心的,至少我本人把整个项目对应的jar翻腾了一遍,测试环境没有问题,但是线上就一直异常,一直报错,无奈请教了大佬之后,远程的maven仓库中对应的jar删除重新打包上传,重启项目之后,没有发现错误了。