问题描述:在eclipse项目上出现了一个小红叉,但找遍项目又找不到报错的地方,并且启动tomcat时报错:
ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
或者:
ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
解决办法:
1、右键项目-->点击“properties”
2、选择“Deployment Assembly”
3、点击“add”-->选择“"Java Build Path Entries"
4、点击“next”-->选择“Maven Dependencies”-->点击“Finish”
此时虽然项目上仍然有小红叉,但启动tomcat不再报错,项目正常运行
参考来源:stackoverflow
但是,在通过 maven update之后Deployment Assembly里的Maven dependencies又消失了!
打开菜单栏的window--Show View--Problems,然后在控制台一栏的Problems里查看Errors里问题。
发现错误原因是:Cannot change version of project facet Dynamic Web Module to 3.1.
在项目右键--Properties--Project Facets中,我的Dynamic Web Module是3.1;而在web.xml中,我的version="3.0"。
将web.xml文件头改成:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
然后选择菜单栏的 Project --> Clean 清理对应报错的项目
选择报错的项目,右键 Maven --> Update Project等待操作完成即可
web.xml 3.1和4.0的头文件参考:https://blog.csdn.net/qmdweb/article/details/82773499
如果Problems里的Errors还有其它问,需要注意排查修复后,项目的小红叉才会消失!!!