• 解决java.lang.NoClassDefFoundError错误


    昨天在开发过程中,导入同事的一个服务到本地,首先从git上把项目拉下来,然后使用maven导入eclipse,然后build。

     build的过程中在项目的一个测试类里面报错 java.lang.NoClassDefFoundError org/bosn/xxxxx ,然后当时不知道怎么解决问题,于是把test关闭之后继续build,

    build success!

    然后启动项目,没有出现问题,正常启动,日志信息没有报错,不过在我使用postman访问接口的时候,无论哪一接口都在报错  java.lang.NoClassDefFoundError org/bosn/xxxxx;

    所以没有办法,只好一步一步去找,在Maven本地仓库也有这个class,为什么不对呢,最后经过一下午的奋战,终于找到了原因,因为工具包的版本不一致。

    因为我其他的服务依赖的工具jar版本是0.0.1的,但是这个服务缺依赖的是0.0.2的jar,这点是我没有想到的,因为jar是工具服务生成的,所以maven默认可识别。

    所以导致虽然jar里面有这个class但是并不是这个版本的,所以导致NoClassDefFoundError 的错误。

    总结:

       以后遇到NoClassDefFoundError ,可以先去查看依赖jar版本是否正确,不要搞错了。

  • 相关阅读:
    try-catch 回滚事务,避免回滚失效的操作
    Java 7中的Try-with-resources
    Linux开发环境之配置静态IP地址
    Windows和Linux系统如何退出python命令行
    Python基础(一)
    Linux开发环境之nginx
    Linux开发环境之安装自带jdk
    Linux删除命令的几种方式
    MySQL之新建索引原则
    webapp环境搭建(一)
  • 原文地址:https://www.cnblogs.com/wangzun/p/7530541.html
Copyright © 2020-2023  润新知