2013-04-13 84 views
10

夥計們我正在努力解決在Windows環境中在Tomcat中打開自定義錯誤頁面的問題。我得到了一些解決方案,但沒有運氣。我嘗試了幾乎所有的鏈接,但它不適合我。他們中的一些其他的解決方案部署在Tomcat的,但不是我的Web服務工作錯誤代碼500的Tomcat 7中的自定義錯誤頁面

的web.xml

<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

<error-page> 
    <location>/error.html</location> 
</error-page> 


我從我的Servlet發送錯誤3.0應用 response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

我已將我的error.html放在我的WebService的根目錄中。

一些我的JSP頁面而不是HTML還我試圖

在JSP中的情況下,我使用的鏈接:

<%@ page isErrorPage="true" %> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <h1>Error</h1> 
</body> 
</html> 


FYI它是爲其他的Tomcat工作正常內置的解決方案,它的工作完美。但在我的Webservice我得到的迴應500,但頁面打開空白。還有一件事我禁用了我的Internet Explorer 9.0顯示錯誤友好頁面仍然響應來自servlet的500。但錯誤頁面將空白。

如果有任何想法或任何關於我的查詢的疑問只是讓我知道。我需要它儘快。

+0

爲什麼是Web服務試圖在發生錯誤時處理HTML頁面? –

+0

...你的servlet和JSP與Web服務有什麼關係?你確定你知道什麼是Web服務嗎? – eis

+0

,因爲我們在我們的項目中使用我們的自定義錯誤頁面 –

回答

18

嘗試把下面的代碼片段在WEB-INF/web.xml

<error-page> 
    <error-code>500</error-code> 
    <location>/Error.jsp</location> 
</error-page> 

<error-page> 
    <exception-type>java.lang.Exception</exception-type> 
    <location>/Error.jsp</location> 
</error-page> 

在這種情況下Error.jsp處於同一水平WEB-INF目錄(而不是裏面)。

+0

Harshal非常感謝您的回覆但我試過它也Unfortunetly沒有運氣.. –

+1

這似乎對我有幫助!注意,排序很重要,你需要在異常映射之前進行500映射(如圖所示) –

3

同樣可以實現編程如果使用嵌入式例如Tomcat這樣的:

 Context appContext = ...    
     ErrorPage errorPage = new ErrorPage(); 
     errorPage.setErrorCode(HttpServletResponse.SC_NOT_FOUND); 
     errorPage.setLocation("/my_custom_error_page.html"); 
     appContext.addErrorPage(er);