2011-07-09 50 views
1

我希望在Glassfish中引發未處理的異常(在網頁中,不是日誌)時看到異常詳細信息。Glassfish中未處理的異常詳細信息

此錯誤頁面顯示,但沒有有用的信息。當拋出異常時,有沒有可以查看它的更多細節的選項? (像在asp.net如果你讓debugmode真正在web.config中可以看到異常的詳細信息

HTTP狀態500 -

類型異常報告

消息

說明服務器遇到內部錯誤() ,阻止其執行此請求。

例外

顯示java.lang.NullPointerException注 異常 的完整堆棧跟蹤和其根源是 在Oracle GlassFish應用服務器3.1日誌可用。

的Oracle GlassFish應用服務器3.1

感謝

回答

5

一般來說,你應該做的事情一樣,只有在開發環境中,因爲它發佈內部應用程序的細節向外界(安全問題)。不過,你可以在你的web.xml定義一個通用的異常的jsp:

<web-app> 
    <error-page> 
     <exception-type>java.lang.Throwable</exception-type> 
     <location>/WEB-INF/jsp/throwable.jsp</location> 
    </error-page> 
</web-app> 

throwable.jsp的頁面元素必須包含一個isErrorPage屬性:

<%@ page isErrorPage="true" %> 

該屬性定義的變量例外鍵入java.lang.Throwable,這樣你就可以檢查裏面throwable.jsp您的例外:

<div style="font-family: monospace"> 
    <pre> 
<% exception.printStackTrace(new java.io.PrintWriter(pageContext.getOut())); %> 
    </pre> 
</div> 
+0

謝謝你,那就是我想要的。但還有一個問題,我沒有web.xml,但我有一個sun-web.xml。他們是一樣的嗎? – Seregwethrin

+0

他們絕對不是。您應該在Eclipse項目創建嚮導中勾選*生成部署描述符?*複選框以獲取一個。現在您需要手動創建一個。 – BalusC