未知代码勿动!

java.lang.NoClassDefFoundError: Could not initialize class
这是一次更新后在线上出现的异常!

NoClassDefFoundError发生在编译时对应的类可用,而运行时在Java的classpath路径中,对应的类不可用导致的错误。
查找git改动记录发现,POM文件的一个依赖被不明人士注释掉了(我)

    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

为什么会注释呢? 当时使用Dependency Analyzer,觉得这个依赖存在的版本是在太多,私以为这个依赖好无用武之处,顺手就Ctrl+/
殊不知前方异常大军已经磨刀霍霍...

刚更新,钉钉消息开始极速闪烁,我就知道事情并没有那么简单,果然关键功能都出现了异常。
java.lang.NoClassDefFoundError: Could not initialize class ...这里省略通联SDK下的class
尝试:
查找local repository 对应文件夹的JAR包,先备份,删除后重新生成,发现异常仍然存在。
并且生成的resolver-status.property文件出现
maven-metadata-ith.xml.error=Could not transfer metadata ...(省略)

原始从SDK源头查找,发现此SDK内部引用了我注释掉的那个log4j依赖,一切真相大白。
由于我注释掉了所用的依赖,导致NoClassDefFoundError !
注释打开,update,一切恢复平静。

后记:没什么事还是不要去动一些遗留代码,否则中奖概率直线上升。

WRITTEN BY:    Richard

I'm discombobulated !