最近把原來的ssm項目遷移為springboot.,參考demo,添加jsp.你會發現煩人的404。
這個問題困擾了我兩天。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
添加上述的核心配置,檢查沒問題, 然後你使用springboot Main方法類啟動。
恭喜你:收獲404錯誤。
檢查我們的jsp目錄,感覺沒問問題,
src/main/webapp/WEB-INF/jsp/detail.jsp
檢查application. yml 配置
spring:
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp
感覺沒問題啊,然後各種查
- 解決方案一:
- idea點選右邊的maven 插件、點選springboot:run
- 如果正常運作,證明你的配置沒有問題,main 方法運作失敗是idea和tomcat的問題。main方法不能自動拷貝tomcat-embed-jasper .jair 包。具體可以參考
- main方法運作 run 運作
- 解決方案二:
- 有了思路,檢視main方法運作資訊,發現配置的tomcat為9.0
2020-12-09 10:02:57.686 INFO 26864 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8180 (http)
2020-12-09 10:02:57.695 INFO 26864 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-12-09 10:02:57.695 INFO 26864 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.39]
然後轉戰stackOverFLOW.
更改原來的jsp路徑,放到
src/main/resources/META-INF/resources/WEB-INF/jsp/detail.jsp
然後就可以了, ,核心問題還應該還是tomcat的 webAPP目錄問題。具體參考原貼吧。
《Run Spring-boot’s main using IDE》
留待其他大佬,解決核心問題,問什麼一定要放在這個目錄下。