一次升级hibernate版本到5.4.21后仅单个机器出现的NoSuchMethodError问题

背景:

   项目一个版本已迭代测试一段时间,负责登录的组件,在某台真机上出现如下报错:期间其他测试人员的环境正常

一次升级hibernate版本到5.4.21后仅单个机器出现的NoSuchMethodError问题

奇怪的线索:

  a. 相同 jdk环境1.8.0_131下仅在某个机器上出现问题(该机器必现)  其他机器正常

  b. 报错位置里  红色框两个类属于同一个jar包  

一次升级hibernate版本到5.4.21后仅单个机器出现的NoSuchMethodError问题

怎么同一个jar里还出现解析不到?而且仅在一台服务上这样。当前这个jar包也没有多个出现但是版本不同的情况呀。

一次升级hibernate版本到5.4.21后仅单个机器出现的NoSuchMethodError问题

后来请教老大,说这种在一台机器上出现,基本上就是jar包冲突问题了,为什么其他环境没出现,基本是看运气,和类与jar的加载顺序有关。如果不是同一个jar的版本冲突,可能还是相关jar包的版本冲突。

解决办法:保证hibernate相关版本一致后,问题得到解决。

如图:

一次升级hibernate版本到5.4.21后仅单个机器出现的NoSuchMethodError问题

只是升级了这个一个jar包版本到5.4.21后,程序在发现的环境上部署后确认已修复。

结论: 不要觉得只在一台机器上出现就怀疑环境的问题,仍然最开始怀疑的就是jar冲突问题。尤其是本包内的调用NoSuchMethodError问题。