SpringBoot訪問不到controller的解決方案
SpringBoot訪問不到controller
最近開始學(xué)習(xí)spring boot,做練習(xí)時候訪問不到controller,報了404錯誤。開始以為是沒有掃描到的問題,后來發(fā)現(xiàn)還有其他原因。下面我們總結(jié)一下訪問不到controller的錯誤原因。
首先,出現(xiàn)這個異常說明了跳轉(zhuǎn)頁面的url無對應(yīng)的值.
異常:
This application has no explicit mapping for /error, so you are seeing this as afallback.
解決方案
1. 確認是否掃描到了controller,Application啟動類的位置是否正確。
Application啟動類的位置不對。要將Application類放在最外側(cè)。即包含所有子包
原因:spring-boot會自動加載啟動類所在包下以及其子包下的所有組件。
例如:下圖會掃描Application啟動類包下(即mycode包)、以及其子包(這里的controller包)。
2. 確認輸入項目路徑是否正確
如:http://localhost:8080/index,這里需要注意的是端口號的查看。
3.確認注解是否用對
在 Controller 層類上面使用的注解是 @RestController 而并非是 @Controller,或者是 @Controller + @ResponseBody;
詳解:
- 如果返回 String 或者 json 的話就直接類上用 @RestController;
- 如果想要頁面跳轉(zhuǎn)的話,就使用 @Controller;
- 如果只有在某方法上返回 json,其他方法跳轉(zhuǎn)頁面,則在類上添加 @Controller,在需要返回 String 和 json 的方法上添加 @ResponseBody 注解;
4.確認導(dǎo)入項目注解的包地址是否正確
@RequestMapping("/hello") import org.springframework.web.bind.annotation.RequestMapping; @RestController import org.springframework.web.bind.annotation.RestController;
5.控制器的URL路徑書寫問題
@RequestMapping(“xxxxxxxxxxxxxx”)?
實際訪問的路徑與”xxx”不符合,注意對應(yīng)一下自己訪問的url與@RequestMapping中填寫的是否一致,千萬別忽略了多了一個空格的問題。
6.配置了上下文路徑,使用了server.context-path
這里著重說一下這個問題,這也是博主犯得錯誤。
我使用的SpringBoot版本為2.1.1,而server.context-path在2.0版本中已經(jīng)棄用了,采用 server.servlet.context-path。
由于版本的差異導(dǎo)致了配置的上下文路徑無效。
SpringBoot版本 | 配置 |
1.x | server.context-path |
2.x | server.servlet.context-path |
建議大家可以專門參考一下spring boot 1.x版本和2.x版本的差別,這樣后續(xù)學(xué)習(xí)或者工作過程中有相關(guān)問題可以減少很多麻煩。
springboot項目controller訪問不到的一種情況
在新創(chuàng)建一個springboot項目時,注意Package下的目錄不要太長
如果像上圖那樣創(chuàng)建項目,最終出來的項目結(jié)構(gòu)中,你的springboot啟動類會出現(xiàn)在springboot_demo1包下面,這種情況下,調(diào)用controller層會訪問不到。
解決辦法
將SpringbootDemo1Application類移出當前包,之后就可以正常使用controller層
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
生產(chǎn)環(huán)境NoHttpResponseException異常排查解決記錄分析
這篇文章主要為大家介紹了生產(chǎn)環(huán)境NoHttpResponseException異常排查解決記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10java 數(shù)據(jù)結(jié)構(gòu) 冒泡排序?qū)崿F(xiàn)代碼
這篇文章主要介紹了java 數(shù)據(jù)結(jié)構(gòu) 冒泡排序的相關(guān)資料,并附實例代碼,有需要的小伙伴可以參考下2016-09-09Java object wait notify notifyAll代碼解析
這篇文章主要介紹了Java object wait notify notifyAll代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11