项目使用maven构建,已经添加了所有的依赖,并且 web.xml都可以点进去,说明也没有配错。网上搜了一些解决办法,配置project structure都没用。
最终发现,自己 复制 依赖时,有些 依赖的scope 是 provided
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency>
provided 作用
表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。
因此,删除该scope,项目可以正常启动。
其他scope参考学习