zoukankan      html  css  js  c++  java
  • java.lang.NoClassDefFoundError异常处理

    1.异常信息:

    Caused by: java.lang.NoClassDefFoundError: com/pingan/cfss/monitor/user/controller/UserInfoController$2
    at com.pingan.cfss.monitor.user.controller.UserInfoController.getUserList(UserInfoController.java:84) ~[cfss_monitor_user/:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_92]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_92]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_92]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_92]
    at com.pingan.pafa.papp.esa.annotation.MethodESA.invokeMethod(MethodESA.java:148) ~[pafa5-dubbox-5.3.13.jar:?]
    at com.pingan.pafa.papp.esa.annotation.MethodESA.perform(MethodESA.java:59) ~[pafa5-dubbox-5.3.13.jar:?]
    ... 36 more

    2.通用的排查方法

    遇到这种异常不外呼两种情况

    1.classpath里没有对应的class文件

    2.有class文件,但是加载静态类时,初始化静态方法报错。

    3.问题解决过程

    遇到后,猜想:我们生产环境肯定没人删除依赖包的怎么会少class文件,直接把1忽略了,又结合代码,2也被忽略了,此时就懵逼了(UserInfoController这个类已经被加载了,为啥UserInfoController$2会找不到?)。

    当时就在本地想了一个办法,先把应用启动起来,然后把target全部删掉,发现报了一模一样的错误。(问题终于被确定,是1少class)

    确定后就去生产服务器查看lib包,果然什么都没有,后来经过排查,是运维人员的定时备份日志脚本把lib也备份了(因为pafa的依赖包是放在和日志同目录的子目录里)

    4.心得:

    不要随随便忽略任何细节,除非你有确凿的证据

  • 相关阅读:
    事后诸葛亮
    团队作业6--展示博客(Alpha版本)
    团队作业5——测试与发布(Alpha版本)
    团队作业2:需求分析&原型设计
    团队编程作业1-团队展示与选题
    结对编程1
    TeamViewer app案例分析
    第一次作业--四则运算
    【Alpha】Daily Scrum Meeting 集合贴
    【Alpha】Daily Scrum Meeting——Day3
  • 原文地址:https://www.cnblogs.com/z-test/p/10221919.html
Copyright © 2011-2022 走看看