项目正常却报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

猜你喜欢

转载自blog.csdn.net/Quantum_Dog/article/details/88848624