https://blog.51cto.com/u_15535797/6075885

典型异常,主要是依赖中没有该类。导致原因有两方面:第一,的确没有引入该类;第二,由于Jar包冲突,Maven仲裁机制选择了错误的版本,导致加载的Jar包中没有该类。
抛出java.lang.NoSuchMethodError:找不到特定的方法。Jar包冲突,导致选择了错误的依赖版本,该依赖版本中的类对不存在该方法,或该方法已经被升级。


Jar包冲突的本质:Java应用程序因某种因素,加载不到正确的类而导致其行为跟预期不一致。

具体分两种情况:

情况一:项目依赖了同一Jar包的多个版本,并且选错了版本;
情况二:同样的类在不同的Jar包中出现,导致JVM加载了错误的类;
  情况一,同一个依赖引入了多个Jar包版本,不同的Jar包版本有不同的类和方法。由于Maven依赖树的仲裁机制导致Maven加载了错误的Jar包,从而导致Jar包冲突;

  情况二,同一类在不同的Jar包中出现。这种情况是由于JVM的同一个类加载器对于同一个类只会加载一次,现在加载一个类之后,同全限定名的类便不会进行加载,从而出现Jar包冲突的问题。