2012-10-29 105 views
1

我已經創建了一個404頁面,並且正在使用我知道不存在的簡單頁面請求進行測試。此代碼將顯示我所做的錯誤頁面(又名我想要的結果)。Java錯誤頁面配置

<!-- CONFIGURATION FOR ERROR PAGES --> 
<error-page> 
    <!--<exception-type>java.lang.Throwable</exception-type>--> 
    <error-code>404</error-code> 
    <location>/videoNotFound</location> 
</error-page> 

然而,該代碼將顯示的Apache Tomcat默認的錯誤頁面

<!-- CONFIGURATION FOR ERROR PAGES --> 
<error-page> 
    <exception-type>java.lang.Throwable</exception-type> 
    <!--<error-code>404</error-code>--> 
    <location>/videoNotFound</location> 
</error-page> 

任何想法,爲什麼這是發生,或有什麼我可以嘗試,也許解決這個問題?儘管選項1有效,但我更喜歡選項2,因爲我不想針對每種異常類型都有特定的錯誤頁面。

+0

通過_apache tomcat的默認錯誤page_你的意思是默認的404頁面權利?或500內部服務器錯誤? 你能在你的tomcat控制檯中看到任何異常跟蹤嗎?並且你能確認你正在接收的http狀態碼 – mzzzzb

回答

2

404java.lang.Throwable是在不同情況下觸發的兩種非常不同的錯誤條件。 404就像您測試過自己是通過請求不存在的/無法訪問的資源觸發的,java.lang.Throwable是由於內部服務器/編程錯誤而發生的錯誤情況,它由http狀態代碼500表示。這種情況下,您無法通過簡單訪問不可訪問的資源來進行模擬; 4xx狀態代碼的性質通常是在請求甚至到達Web應用程序之前拋出它們,而500系列錯誤代碼主要是Web應用程序生成的。測試這個的唯一方法是在範圍內拋出一個可拋出的實例ExceptionError您的web應用程序代碼。

最後,你必須有兩個獨立的error-page定義,一個集裝箱相關的錯誤(主要是4xx狀態碼),另一個用於500/throwable類型的錯誤條件