SpringMVC訪問controller報錯404的解決辦法(總結(jié)超詳細)
問題描述:
純注解配置SpringMVC程序,使用tomcat8.5.95版本啟動,能啟動成功并且訪問index.jsp頁面,但是訪問/save時出現(xiàn)404無法訪問,程序如下
解決辦法:
一.更換高版本tomcat
以下的所有方法我全部都嘗試過,但還是訪問controller 404,最后更換了最新版本的tomcat才解決,所以在此把該方法列到第一個
二.檢查jdk與spring版本是否兼容
Spring 框架的不同版本對于 JDK 的要求是有所區(qū)別的。一般來說,每個 Spring 框架版本都會聲明它所支持的 JDK 版本范圍。以下是一些常見的 Spring 框架版本對 JDK 的要求:
1. Spring Framework 5.x:
- Spring 5.x 支持 JDK 8 及以上版本。這意味著你可以在 JDK 8、9、10、11、12、13、14、15 和 16 上運行 Spring Framework 5.x
2. Spring Framework 6.x:
- Spring Framework 6基于JDK 17構(gòu)建。換句話講,若想使用Spring Framework 6那么你的JDK環(huán)境最低要求JDK 17
因此,如果你在使用 Spring MVC 6.x 版本,需要確保你的 JDK 版本符合其要求。當然,具體的兼容性要求最好還是查閱官方文檔或者發(fā)布說明,以確保 JDK 和 Spring 版本之間的兼容性。
三.刪項目重寫一個
這一步驟是一種常見的排查問題的方法,通常用于排除項目中可能存在的難以定位的問題。通過刪除并重新編寫項目,你可以確保項目的結(jié)構(gòu)和配置是干凈的,并且可以排除一些潛在的問題
操作起來很簡單,文件夾里找到項目直接刪除即可
四.WEB-INF中導入lib
在傳統(tǒng)的基于 Servlet 的 Web 應用中,通常會將項目所需的第三方庫(JAR 文件)放置在 WEB-INF/lib 目錄下。這些 JAR 文件包含了項目所需的各種依賴庫
在現(xiàn)代的 Maven 或 Gradle 項目中,這些依賴通常會被管理工具自動下載并放置在項目的類路徑中,而不需要手動放置在 WEB-INF/lib 目錄下。但是IDEA有時會出錯,導致WEB-INF下沒有l(wèi)ib目錄,這時候就需要自己手動添加了
在設置的項目結(jié)構(gòu)中,選擇工件
在WEB-INF目錄下手動添加一個名稱為lib的文件
lib的位置別錯了
選擇庫文件,里面的東西全部添加
保存,退出,重新運行tomcat查看訪問controller是否報錯404
五.如果返回的數(shù)據(jù)為json,確保引入jackson依賴
在一個典型的 Spring MVC 應用中,當你向客戶端返回一個對象時,Spring MVC 默認使用 HTTP 消息轉(zhuǎn)換器(HTTP Message Converters)來將對象轉(zhuǎn)換為合適的響應格式。這意味著,如果你的控制器方法返回一個對象,Spring MVC 將根據(jù)請求的 Accept 頭部信息,將該對象轉(zhuǎn)換為適當?shù)捻憫袷?,比?JSON 或 XML
在默認情況下,Spring MVC 提供了一些內(nèi)置的消息轉(zhuǎn)換器,用于處理各種格式的數(shù)據(jù)。但是,如果你想要返回 JSON 格式的數(shù)據(jù),通常會引入 Jackson 庫(如 jackson-databind)來實現(xiàn) JSON 的序列化和反序列化。Jackson 庫提供了 MappingJackson2HttpMessageConverter,它可以將 Java 對象轉(zhuǎn)換為 JSON 格式的數(shù)據(jù),并且能夠與 Spring MVC 集成
因此,當你在 Spring MVC 中想要返回 JSON 格式的數(shù)據(jù)時,通常會引入 Jackson 庫,并確保 Spring MVC 配置正確地使用了 MappingJackson2HttpMessageConverter,以便將對象轉(zhuǎn)換為 JSON 格式的響應
如果在一個純注解的 Spring MVC 應用中,你想要返回 JSON 格式的數(shù)據(jù),通常需要引入 Jackson 庫,并且在控制器方法上使用 @RestController 或 @ResponseBody 注解來指示該方法返回 JSON 格式的數(shù)據(jù)。如果沒有正確引入 Jackson 庫或配置 Spring MVC 來處理 JSON 格式的數(shù)據(jù),可能會導致返回的數(shù)據(jù)格式不符合預期,或者在訪問控制器方法時出現(xiàn) 404 錯誤
六.確保所有的注解都加上了
1.Bean相關(guān)
檢查@Controller注解,將該類注冊為Bean
檢查@RequestMapping是否加上,和后面的訪問路徑是否寫錯
檢查@ResponseBody是否加上,無返回值可忽略
2.config相關(guān)
(1) SpringMvcConfig
是否掃到了bean所在的包
(2) AbstractDispatcherServletInitializer實現(xiàn)是否正確
七.刪除.m2文件下的repository
在 Java 開發(fā)中,".m2" 目錄通常是 Maven 的本地倉庫,用于存儲項目的依賴庫。當你在項目中使用 Maven 進行依賴管理時,Maven 會從遠程倉庫下載所需的依賴,并將其緩存到本地的 ".m2" 目錄下。這樣做可以加快構(gòu)建過程,并在沒有網(wǎng)絡連接時也能夠構(gòu)建項目
有時候本地的依賴庫可能會因為各種原因而損壞或不完整,導致構(gòu)建失敗或者出現(xiàn)奇怪的行為。通過刪除并重新下載,可以確保本地的依賴庫是完整的
八.webapp文件未被設為資源
仔細看看webapp文件夾上有沒有這個小點,沒有的話需要重新設置
還是在設置里的項目結(jié)構(gòu)中,選擇Fact
選擇+新建web,選擇你所創(chuàng)建的webapp的路徑,確認返回,即可設置成功
以上就是SpringMVC訪問controller報錯404的解決辦法(總結(jié)超詳細)的詳細內(nèi)容,更多關(guān)于SpringMVC訪問controller404的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于Java代碼實現(xiàn)數(shù)字在數(shù)組中出現(xiàn)次數(shù)超過一半
這篇文章主要介紹了基于Java代碼實現(xiàn)數(shù)字在數(shù)組中出現(xiàn)次數(shù)超過一半的相關(guān)資料,需要的朋友可以參考下2016-02-02SpringCloudStream原理和深入使用小結(jié)
Spring?Cloud?Stream是一個用于構(gòu)建與共享消息傳遞系統(tǒng)連接的高度可擴展的事件驅(qū)動型微服務的框架,本文給大家介紹SpringCloudStream原理和深入使用,感興趣的朋友跟隨小編一起看看吧2024-06-06Maven實戰(zhàn)之搭建Maven私服和鏡像的方法(圖文)
本篇文章主要介紹了搭建Maven私服和鏡像的方法(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12CompletableFuture創(chuàng)建及功能使用全面詳解
這篇文章主要為大家介紹了CompletableFuture創(chuàng)建及功能使用全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07