大家好,我是欧阳方超,可以关注我的公众号“欧阳方超”,后续内容将在公众号首发。
同样的错误,非一样的解决方式。NoClassDefFoundError错误意味着在运行时不能找到合适的类。而一般的原因是依赖未引入或引入错误、依赖版本不一致。而我今天遇到的这个现象最后排查的原因有点让我意外,且往下看到底发生了啥。
我遇到问题时看到的日志:
出现这类现象一般都是依赖未引入或引入错误、依赖版本不一致导致的,而相应的办法就是检查项目的依赖配置,确保所有需要的 JAR 包都已正确引入;确保依赖的版本与当前项目兼容。而我感觉我就不应该从这两点着手去检查,因为近四天我都没有进行任何更新代码的操作,而线上昨天甚至上午还在正常运行。我就去看jar包,诡异的是jar包不再了,已经被重命名了,此时我才突然想起来,我要对某个文件重命名以便进行备份,但是选错文件了,结果把jar包重命名了,当时想着要纠正回来呢,结果被其他事情打断了,然后就忘记这茬事了,结果当过了一会再次访问系统时,接口一直报错,看后台才发现上面的日志,jar包都被重命名了(后缀被改了,这是我备份的惯用操作),肯定无法从里面加载class文件了。
好,知道原因了,把jar包重新启起来就好了。
罪过啊,我再次想到了我之前的想法——当你在进行一个原子操作的时候,请专心完成它再做其他事情。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。