java.lang.ClassNotFoundException的解决方法

出现这个问题可能的原因很多,但是最终原因都是项目的 classpath 下面没有这个类/包。以下是简单的排查方法:

  1. 首先排查项目中是否存在相应的 jar 包,可以在maven dependencis文件夹中查看看。如果没有,在pom文件添加依赖配置即可;
  2. 在maven的本地仓库中找到对应的jar包文件,双击试图打开它,如果出现报错说文件已经损坏或者不完整,解决办法就是把这个jar包文件删除,重新update pom文件,让maven重新下载这个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包也都已经部署进来。