Java-java.lang.NoClassDefFoundError:brave.Span.Kind

今天在升级某个框架时,遇到如标题描述的问题。这个问题应该说还是比较明显的,首先去搜了一下NoClassDefFoundError的问题,参考这篇博客:https://www.cnblogs.com/xyhz0310/p/6803950.html。

这个问题是在Java程序运行时调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出NoClassDefFoundError错误。与ClassNotFoundException的不同在于,这个错误发生在运行时需要加载对应的类不成功,而不是编译时发生。

再仔细看后面具体的信息brave.Span.Kind,然后点击定位到错误的地方,一看,果然是Kind是Span类的静态变量,再看这个类如何引用的,是通过import brave.Span这个类。那么问题很明显了,我们程序中根本就没有用到brave相关的jar包,当然报错了。网上一搜,Brave(基于Zipkin的分布式调用链客户端),所以把brave-4.16.2.jar这个包加到项目当中。重新运行,还是报这个错误,不过后面的描述变了,变成了zipkin相关的错误,那很明显了,要引入zipkin相关的jar包,一共是两个:zipkin-reporter-2.3.3.jar和zipkin-2.5.0.jar。引入这些后,再重新运行,可以了。

原文地址:https://www.cnblogs.com/fxl-njfu/p/10918386.html