No Spring Web ApplicationInitializer types detected

No Spring Web ApplicationInitializer types detected

導致這個的原因可能很多而且可能是小的失誤,這裏只是一種情況
1、環境:maven web項目 開發工具idea tomcat8.5.32
編譯輸出路徑
這裏寫圖片描述
2、現象:項目啓動沒有其他的任何異常
3、解決思路
問題定位:根據No Spring WebApplicationInitializer types detected,通過調用鏈找到tomcat裏面一個類ContextConfig,裏面有個getContextWebXmlSource方法就是加載WEB-INF/web.xml文件的,找到這裏web.xml沒有加載成功,

我這個原因就是:

maven打包出的錯,查看自己在idea中以哪種方式Fix的這裏寫圖片描述

如果是第一種你的tomcat的webapps中會有發佈項目並且如果contextpath爲“/”的話項目會直接發佈到ROOT下,如果是第二種tomcat的webapps中沒有發佈項目,但是docBase指向下面目錄

這裏寫圖片描述
就到這兩個位置查看項目是否完整是否缺少web.xml

解決步驟:
(1)打包把插件版本修改一下最好maven用新一點的我的是3.2,下面的插件放到pom文件中
     <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
             <version>3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
       </plugin>
 (2)clean
 (3)package
 (4)idea中啓動項目。要是還不放心 查看輸出目錄是否有完整的項目,就是上面的兩個位置

總結:要是看提到的兩種方式fix的過程,邏輯在ContextConfig------->>>> lifecycleEvent(LifecycleEvent event)中的BEFORE_START_EVENT事件下,並且如果你是在idea中直接啓動的項目tomcat work目錄也不在tomcat路徑下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章