java.lang.ClassNotFoundException

发布时间 2023-09-21 02:23:19作者: 201812

报错java.lang.ClassNotFoundException:XXXXXXXXXXX在过去的一个多星期中经常出现,我是一点头绪都没有,第一次学习这种hbase+idea连接,然后又连接phoenix等

出现了各种各样的错误,各种各样的java.lang.ClassNotFoundException

java.lang.ClassNotFoundException:org.apache.hadoop.hbase.TableName

java.lang.ClassNotFoundException: org.apache.hadoop.hbase.client.ConnectionFactory

今天找到一个排除错误的方法:就是,看看调用的东西是否为null。

我在一个java文件中想获取一个HBaseDML的对象然后对hbase表进行操作,但是一直报错误java.lang.ClassNotFoundException:org.apache.hadoop.hbase.TableName,可是我在改HBaseDML中创建main函数对表进行增删改查操作是完全没有问题的,但是从这个java文件获取却出现各种各样的问题,结果我发现从这个java获取到的HBaseDML的connection对象是一个null,所以用HBaseDML进行增删改查出现了错误。

 我哭死,我的最后一个问题居然是tomcat的问题。。。。我一直在想这个ConnectionFactory它又能有什么错呢。。。而且在之前的测试都能通过一加上web部分就连连报错。。。

java.lang.ClassNotFoundException: org.apache.hadoop.hbase.client.ConnectionFactory

 

参考:javax.servlet.ServletException: Servlet execution threw an exception org.apache.tomcat.websocket.se_✔✔✔✔的博客-CSDN博客

一定要按照步骤走,不然很容易直接报错:java.lang.IllegalStateException: 启动子级时出错

 

更改后,所有测试信息出现。。我恨你tomcat,我恨你idea,我恨你加载不成功,我恨你

 解决步骤:

这里注意不是直接把tomcat删除,而只是删除deployment里面的deploy

 file-->project structure

 添加回来,添加后记得点击apply,然后ok

 点击Apply然后OK

回到tomcat把deploy添加回来

 重新运行tomcat,我的问题得到解决。