Java程序启动后,Catalina日志报错:ClientCnxn$SendThread.run(ClientCnxn.java:1128)

一、问题描述

某次启动面目内某组件,启动后,查看catalina.out日志发现报错:

2022-05-15 09:50:13 [ERROR](o.a.z.ClientCnxn                   :414) from localhost-startStop-1-SendThread(Namenode:2181)
java.lang.NoClassDefFoundError: org/apache/zookeeper/server/ZooTrace
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1128)

但项目还是启动起来了:
在这里插入图片描述

二、原因

其中,NoClassDefFoundError 发生在 JVM 运行时,根据提供的类名,在 classpath 中找到对应的类进行加载,但是当它找不到这个类时,就会出现此错误;

还有一个类似的是ClassNotFoundException,它 是在编译的时候,在 classpath 中找不到对应的类,发生的异常。

示例:A系统引用了C jar包,现在B系统要引用A系统,把A系统打成jar包,让B系统引用。

当B系统引入了 A jar包,但没有成功引用C jar包,编译的时候,Maven会放过,不会报异常,

再当B系统运行时,发现找不到某个类,此时,就会报 NoClassDefFoundError。

因此,报该错的最可能原因就是jar包调用错误引起。更深层原因,还请路过的有相关的小伙伴们补充。

三、处理

后经排查日志里报错hbase 连接超时错误,检查hbase发现其中一个HRegionServe处于dead状态;后再HMaster上重启Hbase集群后,重启项目,未在报上述错误。
在这里插入图片描述
启动后如下:
在这里插入图片描述
由上可知,pinpoint组件调用Hbase相关组件时,因访问其中一个HRegionServe异常抛出错误。

猜你喜欢

转载自blog.csdn.net/ximenjianxue/article/details/124778775