首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Tomcat 404 錯誤排查:配置正常但訪問項目報 The requested URL was not found

     編輯:程式設計疑難解答

錯誤現象

Tomcat 啟動無錯誤,訪問 https://localhost:8080/項目名/ 或具體 Servlet 路徑時,瀏覽器返回 HTTP 404 - The requested URL was not found on this server。開發者確認 server.xml 配置正常,項目已放入 webapps 目錄。

核心原因:部署路徑與發布配置不匹配

使用 Eclipse/MyEclipse 開發時,最常見原因是 「伺服器發布路徑」與「項目構建輸出路徑」不一致。

詳細排查清單

1. 檢查 Eclipse 伺服器發布配置

  • 雙擊 Servers 視圖中的 Tomcat → Server Locations 區域。
  • 選擇 「Use Tomcat installation」 (生產模式) 或 「Use workspace metadata」 (工作區元數據模式)。
  • 若為後者,確保 Deploy path 指向正確的 wtpwebapps 目錄。

2. 確認項目發布組件

  • 右鍵項目 → Properties → Deployment Assembly。
  • 確認 src/main/webapp (或 WebContent) 映射到 /。
  • 確認 src/main/java 編譯輸出映射到 WEB-INF/classes。
  • 確認依賴的 JAR (Maven Dependencies) 映射到 WEB-INF/lib。

3. 檢查 web.xml / Servlet 註解映射

  • web.xml 中 <url-pattern> 是否與訪問路徑一致。
  • Servlet 3.0+ 註解 @WebServlet("/xxx") 路徑是否包含前導 /。
  • Spring MVC DispatcherServlet 映射是否為 / 而非 /* (後者會攔截靜態資源導致 404)。

4. 項目名與 Context Path

  • 默認 Context Path = 項目名 (WAR 包名)。訪問 URL 必須包含 /項目名/ 前綴。
  • 若需根路徑訪問,在 server.xml <Host> 下配置 <Context path="" docBase="項目名" />,或將 WAR 重命名為 ROOT.war。

5. 靜態資源 404

  • 若 JSP/HTML 能訪問但 CSS/JS/圖片 404,檢查 web.xml 是否配置 <servlet-mapping> for default servlet,或 Spring MVC 靜態資源映射 <mvc:resources/>。

6. 端口衝突/多實例

  • 確認瀏覽器訪問的端口 (默認 8080) 與 Tomcat 實際監聽端口一致 (server.xml <Connector port="8080">)。
  • 排除同機運行多個 Tomcat 實例導致訪問錯誤實例。

快速定位技巧

  1. 查看 Tomcat 控制台啟動日誌:搜索 Deploying web application directory 或 Starting web application 確認項目是否真正部署成功。
  2. 訪問管理頁:https://localhost:8080/manager/html (需配置 tomcat-users.xml) 查看應用列表狀態。
  3. 直接檢查部署目錄:webapps/項目名/WEB-INF/classes 下是否有 .class 文件,lib 下是否有依賴 JAR。

總結

「配置正常但 404」90% 是 Eclipse 發布路徑設置不當 導致類文件、配置文件未正確同步到 Tomcat 運行時目錄。按上述清單逐項核對,重點檢查 Deployment Assembly 與 Server Locations,通常能在分鐘級解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved