2011-10-31 239 views
2

我的Web應用程序在我的臺式電腦上運行良好,Eclipse & Tomcat。當我將war文件上傳到實際服務器時,我無法訪問所有帶有以下錯誤消息的servlet。其他JSP和HTML文件沒有問題。Tomcat 404未找到錯誤

The requested URL /HelloWorld/TryingServlet was not found on this server. 

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. 

這是怎麼造成的,我怎麼能解決這個問題?

+1

首先,它似乎是你有一個apache httpd的對開tomcat的。我從你的ErrorDocument錯誤中得到了這個。您確定您正在嘗試訪問正確的網址嗎? – cherouvim

+1

它是什麼樣的主機? Godaddy什麼的?在一些主機上,特定於webapp的servlet只能通過URL中特定的附加前綴來提供,比如'/ servlets'。基本上,您需要閱讀其開發者FAQ /指南或聯繫託管支持以獲取詳細信息。 – BalusC

回答

1

試試這個網址:

http://YOUR_IP:8080/HelloWorld.war/TryingServlet 

替換HelloWorld.war與戰爭文件的實際名稱...

1

您的問題是在生產環境中的Tomcat是由一個Apache httpd的這的確額不要將請求轉發給tomcat以獲得形式/foobar(沒有擴展名)的網址。 Apache不知道如何處理這些URL並嘗試將它們作爲磁盤上的靜態文件提供。這些文件不存在,因此它會嘗試執行配置不當的404規則(配置的404文件本身也丟失 - 但這是另一個問題)。

解決方案:

  • 分配分機的所有小服務程序,並指定到Apache。例如.do(就像struts一樣),所以你的servlet變成了/foobar.do。然後你需要讓系統管理員指定*.do轉到tomcat。
  • 請求您的系統管理員配置apache將所有請求發送給tomcat,其中一部分用於靜態文件。 E.g *.jpg*.png*.css*.js
+0

救了我一天:) – James