步驟 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-INF下,也會提示404錯誤
步驟 9 : 訪問地址后面多加了一個斜杠 提問
訪問地址后面多加了一個斜杠
如圖,本來應該訪問
http://127.0.0.1:8080/j2ee/login.html
但是卻訪問了地址:
http://127.0.0.1:8080/j2ee/login.html/
