eclipse maven 项目,一直都运行得好好的,某天不知道具体做了什么操作,突然就开始报这个错,且eclipse中项目上有红叉提示错误,但是错误找不到,类似下图:
在eclipse Markers面板中,可以看到如下错误:
Cannot change version of project facet Dynamic web module to 3.0
这个时候,启动tomcat就会报错,java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener,但是可以确定项目中pom.xml文件中正确引用了相关jar包(关键之前一直都运行好好的)。
此时,进入eclipse集成tomcat的路径:eclipse设置的workspace目录下的 .metadata/.plugins/org.eclipse.wst.server.core 目录,里边的tmp0(如果eclipse中添加了多个tomcat,那么依次还会有tmp1、tmp2等目录),在进入部署的目录wtpwebapps目录,可以看到自己的项目根目录,进入WEB-INF/lib查看jar包,发现里边一个maven引用的jar包都没有。。。,所以报找不到类。
估计应该主要还是eclipse和maven集成还是有些问题。。
先处理Markers中的错误:Cannot change version of project facet Dynamic web module to 3.0,按照网上别人的方法,修改项目目录下.settings/org.eclipse.wst.common.project.facet.core.xml文件,将 <installed facet="jst.web" version="2.3"/>版本改为3.0即可。
然后在项目上执行 maven update project... 注意选中下边操作:
执行完后,发现项目上的红叉消失了。
再重新部署到tomcat启动,好了。