1. 程式人生 > >TOMCAT 的 404錯誤 問題總結以及解決辦法

TOMCAT 的 404錯誤 問題總結以及解決辦法

 步驟 1 : 404問題 
404表示File Not Found, 檔案不存在錯誤。
通過學員反映,出現比較多的問題是頁面報404錯誤,因此除了前面的 Tomcat 問題排查 之外,又專門做了這麼一個404問題排查的文章,提供問題分析的思路和對策。
 
步驟 2 : 正確的埠號 
出現404錯誤證明,TOMCAT是啟動成功了的。 但是在一臺計算機上,可以啟動多個埠號不一樣的TOMCAT, 所以請確保自己訪問的是正確的那個埠號,別自己啟動的是8080埠號的TOMCAT,但是訪問的地址卻用的是80埠(預設),這樣肯定會出現404錯誤的。
 
步驟 3 : 環境變數 
假設有兩個Tomcat A和 B,自己分明執行的是B 下的startup.bat, 但是啟動的卻是A,為什麼會這樣呢? 這就是環境變數在作祟了。
在環境變數中有兩個屬性:分別是CATALINA_HOME和CATALNIA_BASE,如果這個值指向的是A,那麼即便執行的是B下的startup.bat, 真正啟動的還會是A。
解決辦法: 刪除掉這個環境變數,或者使用移除了環境變數影響的純淨版 Tomcat。
 
步驟 4 : 確定Web應用是否成功啟動 
雖然Tomcat啟動成功了,但是對應的Web應用啟動失敗,依然會導致404錯誤。
怎麼判斷Web應用成功與失敗呢? 倘若Web引用啟動失敗,那麼就一定會在Tomcat的logs目錄下的 localhost.當前日期.log 裡留下錯誤資訊。
開啟這個檔案,檢查對應的Web應用是否啟動過程中報錯了。 也許是web.xml多寫了一個標籤結束,也許是對應的servlet類找不到。
確定Web應用是否成功啟動
 
步驟 5 : webapps下的ROOT目錄 
有的時候,在server.xml 中配置的<context 是以“/"為開始路徑的,與此同時,在webapps目錄下還存在一個ROOT目錄,這個ROOT目錄其實也是告訴tomcat,以“/” 為開始路徑,那麼這樣就發生衝突了,Tomcat只能二選一,通常情況下都會選擇ROOT目錄,那麼在server.xml中配置的就<context 就無法啟動了,導致訪問對應的資源提示404錯誤。


 步驟 6 : 訪問地址的時候是否加了web應用的名稱 
這個也是常犯的錯誤,加入部署的時候,指定了路徑,比如:
<Context path="/j2ee" docBase="e:\\project\\j2ee\\web" debug="0" reloadable="false" />
那麼訪問的時候,要記得加上j2ee,像這樣:

http://127.0.0.1:8080/j2ee/hello

 步驟 7 : 是否訪問對資源了 

這種錯誤也常見,你寫的檔案是 hello.html, 但是訪問的是 holle.html,自然會提示404啦

 步驟 8 : 不能訪問WEB-INF目錄下的資源 

從安全形度觸發,TOMCAT不允許訪問WEB-INF目錄下的HTML,JSP檔案。 所以如果你的資原始檔放在WEB-INFO下,也會提示404錯誤