java.lang.ClassNotFoundException的解决方法
出现这个问题的原因可能很多,但是最终原因都是部署的项目文件中没有这个类包。
那么出错的点在哪呢?逐一排除!
1.首先在项目文件中没有添加相应的jar包,可以在maven dependencis文件夹中看是否有。如果没有,在pom文件添加依赖配置即可;如果有,还是出现问题转第二步
2.在maven的本地仓库中找到对应的jar包文件,双击试图打开它,如果出现报错说文件已经损坏或者不完整(我猜测可能是以前maven下载的时候因为网络的原因中途断掉没有下载完成,
下次pom在maven仓库引入本地jar包的时候不会再从官网下载,直接拿的是上次那个残缺文件,所以会出错),解决办法就是把这个jar包文件删除,重新update pom文件,让maven重新下载这个jar到本地仓库。
如果发现本地仓库的这个jar包打开也不会报错,那么转第三步。
3.最后的原因是没有将maven工程的jar包发布到部署的项目文件中。进入到tomcat的部署路径.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\下检查了一下,发
现工程部署后在WEB-INF文件夹下没有生成lib目录,正常情况下,会生成lib目录并把工程的所有依赖jar包都部署到该目录下。
解决方案:
1).右键点击项目--选择Properties
选择Deployment Assembly,在右边点击Add按钮,在弹出的窗口中选择Java Build Path Entries。如下图所示:
2).点击Next,选择Maven Dependencies
3)点击Finish,然后可以看到已经把Maven Dependencies添加到Web应用结构中了
操作完后,重新部署工程,不再报错了。然后我们再到.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\目录下,发现工程WEB-INF目录下自动生成了lib目录,并且所有的依赖jar包也都已经部署进来。问题因此解决。