2010-10-04 112 views
7

我的設置:Apache的2.2 + Tomcat的6.0 @的Windows 2008 R2 64位空頁,而不是自定義Tomcat的錯誤頁面

  • 靜態網頁:/
  • 的servlet:/富
  • 的Tomcat和Apache由連接MOD_JK
  • 404.jsp被放置在Tomcat的\的webapps \ ROOT

的Tomcat \ CONF \ web.xml中:

<error-page> 
<error-code>404</error-code> 
<location>/404.jsp</location> 
</error-page> 

的apache \的conf \額外\的httpd-ssl.conf中:

JkMount /foo/* worker1 
JkMount /404.jsp worker1 

當我打開https://...../404.jsp顯示我的自定義錯誤頁。 但是當我打開https://...../foo/nonexisting.html時,會顯示一個空白頁面。

如果我從web.xml中刪除<error-page>...</error-page>代碼並打開https://...../foo/nonexisting.html,那麼將顯示tomcats自己的404。

任何提示?

回答

1

就我所見,webapps的錯誤不能通過放置在ROOT中的錯誤頁面來處理。我現在將404.jsp放在每個webapp(/foo/404.jsp,/bar/404.jsp,...)中,現在它工作。我可以安全地刪除ROOT中的404.jsp,但是如果我在/ foo或/ bar中刪除了404.jsp,那麼如果在任一webapp中出現404,則會提供空白頁。 tomcat會忽略「位置」元素中的前導/,或者將此元素的內容添加到「調用」webapp的路徑中。

-1

其顯示404頁尚未找到或其他? 因爲其他一些錯誤代碼也可用400,401,403,500。 看看這個鏈接 http://docs.yahoo.com/docs/writeus/error.html

如果你有任何其他在web.xml文件中添加錯誤代碼。 希望這有助於。 快樂編碼...

+0

以下行?你必須誤解我的問題 – Alexander 2010-12-03 11:17:44

0

注意:您需要確保您指定的頁面不以數字開頭(即:404.jsp)。這是因爲根據Java語法,您不能用數字來啓動類名稱。

http://www.jguru.com/faq/view.jsp?EID=492774

。希望:-)

+0

爲404.jsp一個_404_jsp.java生成編譯爲_404_jsp.class這是調用沒有麻煩,所以這不可能是原因 – Alexander 2011-01-10 09:03:38

0

如果它工作正常,有助於裝載404.jsp時,並顯示一個空白頁面當Tomcat實際上是嘗試使用頁面來處理一個404錯誤,它可能意味着404.jsp的源代碼中只有使用errorData對象纔會觸發錯誤。

檢查日誌。我有一個類似的空白頁問題,事實證明,我有一個incorrect taglib URL

EDIT

另外,由於Tomcat是已經產生這些404 JkMount不應是必要的(即,它們不是在Apache的範圍)。

+0

感謝JkMount提示! – Alexander 2011-01-17 13:45:13

0

我也遇到了這個問題,事實證明罪魁禍首是我將應用程序上下文根的名稱輸入到錯誤頁面位置。也就是說,

<error-page> 
<error-code>404</error-code> 
<location>/MyApp/404.jsp</location> 
</error-page> 

而它當然應該已經

<error-page> 
<error-code>404</error-code> 
<location>/404.jsp</location> 
</error-page> 
+0

前幾天我回答自己:位置被追加到webapps的路徑中,所以當404/web應用中出現路徑/ foo時,會提供/ foo/{位置},因此似乎無法指定「全球「錯誤頁面 – Alexander 2011-01-21 09:18:58

2

的Jkmount應該有上下文參數,例如:

JkMount /mycontext/* worker1 

那麼頁面訪問是這樣的:

https://mycontext/someservlet/ 

https://mycontext/foo/nonexisting.html 
0

我在運行一個靜態web項目時遇到了這個問題。我已經完成了下面的實現,它已經爲我工作了。

添加在%CATALINA_HOME%/ CONF/web.xml中

<error-page> 
    <error-code>404</error-code> 
    <location>/error_404.html</location> 
    </error-page>