除了网上所说的各种类型的解决方案,还有一种解决方案。
1、在pom.xml中添加一句
<packaging>war</packaging>
2、重新配置tomcat,选择war
3、确保web的路径是对的
file-->project structure
如果3处标红了 改为web文件夹的正确路径即可。
4、启动,应该就可以成功了。
原因:
packaging标签目前有三种类型:pom、jar、war
默认为jar,这种打包方式意味着在maven build时会将这个项目中的所有java文件都进行编译形成.class文件,且按照原来的java文件层级结构放置,最终压缩为一个jar文件。
war包与jar包非常相似,同样是编译后的.class文件按层级结构形成文件树后打包形成的压缩包。不同的是,它会将项目中依赖的所有jar包都放在WEB-INF/lib这个文件夹下。
原因参照:(33条消息) maven之packaging标签_半城风花半城雨的博客-CSDN博客_packaging标签
这只是导致失败的一种可能原因,不全面,欢迎大家探讨。