NoClassDefFoundError问题

问题:

遇到一个问题,报NoClassDefFoundError,以下图:java

NoClassDefFoundError和ClassNotFoundException区别web

咱们常常被java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError这两个错误迷惑不清,尽管他们都与Java classpath有关,可是他们彻底不一样。NoClassDefFoundError发生在JVM在动态运行时,根据你提供的类名,在classpath中找到对应的类进行加载,但当它找不到这个类时,就发生了java.lang.NoClassDefFoundError的错误,而ClassNotFoundException是在编译的时候在classpath中找不到对应的类而发生的错误。ClassNotFoundException比NoClassDefFoundError容易解决,是由于在编译时咱们就知道错误发生,而且彻底是因为环境的问题致使。而若是你在J2EE的环境下工做,而且获得NoClassDefFoundError的异常,并且对应的错误的类是确实存在的,这说明这个类对于类加载器来讲,多是不可见的。服务器

https://blog.csdn.net/qq_28483283/article/details/78404984spa

排查问题:

  1. 项目能够正常部署且基本功能正常使用,只在调用webservice这块时报错,这也验证了这个错误发生在运行时,看了下lib目录下jar包也存在
  2. 看了下对应的jar包,也包含那个类
  3. 本地运行这个方法不会报错,在服务器上报错,又联想到发版是增量改版,依赖jar包通常不会删除的,因此对比了一下本地和服务器上的依赖jar包,果真服务器上的jar包比本地要多十几个,把服务器上的jar包彻底替换成本地的jar包,就解决问题了。对比服务器上多出的jar包
相关文章
相关标签/搜索