java.lang.ClassNotFoundException
报错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
一定要按照步骤走,不然很容易直接报错:java.lang.IllegalStateException: 启动子级时出错
更改后,所有测试信息出现。。我恨你tomcat,我恨你idea,我恨你加载不成功,我恨你
解决步骤:
这里注意不是直接把tomcat删除,而只是删除deployment里面的deploy
file-->project structure
添加回来,添加后记得点击apply,然后ok
点击Apply然后OK
回到tomcat把deploy添加回来
重新运行tomcat,我的问题得到解决。