项目正常却报No Spring WebApplicationInitializer types detected on classpath

背景:idea中springmvc搭建一个demo,启动tomcat,tomcat正常启动却报No Spring WebApplicationInitializer types detected on classpath

删除tomcat下文件,没有任何作用,启动项目之后就是报找不到spring文件,检查web.xml一切正常,忽然灵机一动,用的是idea,是不是哪里配置没配好导致这个问题,毕竟已经被idea坑了N多次了,仔细一看,发现了玄机

这个目录的配置是做什么用的,似乎是标记文件类型的。我以为这样就可以将这个问题解决,太天真了,这只是第一步,这一步的作用就是标记好java类和资源文件定位,方便idea找到文件。

然后检查jar文件是否已经到了模块下面,如图

如果右边有文件,请将他put到右边,才算加载到文件下

继续检查,如果webapp的图标不是这样的,说明系统还没检测到web.xml

具体的添加方法如下:

添加一个web即可,这样就能让那个图标变成有点的图标,继续重启项目,还是报找不到spring。一脸懵逼,将spring文件故意改成有问题的,这个时候发现spring压根没有报错,说明spring文件根本没加载进来,问题确定在web.xml,排查web.xml文件,无异常。

这时候忽然发现一个文件,项目之下有一个

classes文件,里面有一个web.xml,打开一看里面空空入也,这个文件实际就是项目编译之后的 (没有运行过的class文件夹是空的,运行过后class文件夹里面才会有.class文件)

问题终于确定,还是配置没配好,真是神坑

注意截图的位置的两个红框这里,这个就是关键的配置位置,如果不是idea帮你建的maven项目,这里自动检测项目的时候有时候会检测到另外一个web.xml,你可以去目录上看,实际上系统生成了另外一个web.xml,将原来的这里配置删除,指定到项目之下的web.xml,重新启动,一切OK

 

相关文章

这篇文章主要介绍了idea中mapper快速跳转到xml插件的方法,具...
今天小编给大家分享的是IDEA搭建Maven模块化项目的实现方法,...
这篇文章主要介绍了ideaintellij怎么快速修复if语句缺少大括...
这篇文章主要介绍“idea运行main方法或Test避免编译整个应用...
这篇文章主要介绍“idea项目全局去掉严格的语法校验方式是什...
本文小编为大家详细介绍“Windows、IDEA、VSCode常用快捷键有...