在myeclipse自带的tomcat中加载一个web工程,启动tomcat出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener错误。一般出现这种错误有可能是spring库没有包含,主要是spring-web.jar。不过工程中已经存在这个库文件,并且同一个工程之前加载过没有出现这种错误。移除tomcat中的工程,启动tomcat还是出现相同的问题。这就可能是tomcat缓存问题,进入tomcat的webapp目录,清空里面的文件,再重新加载工程,启动tomcat,问题解决。
java开发受各种环境配置参数影响较大,多人合作开发时经常会出现各种问题。
楼主66666,我也出现了这些问题,我先把maven的本地仓库更新,然后按楼主说的退出eclipse,再重新进去alt+F5,最后运行成功进入后台
问题背景:
工程为maven工程,ContextLoaderListener类位于spring-web-3.1.0.RELEASE.jar包中。检查了maven的pom.xml,依赖引入正常。在工程Maven Dependencies视图中也能看到spring-web-3.1.0.RELEASE.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包也都已经部署进来。问题因此解决。