2010-11-19 28 views
3

我已經有以下我pages.xml中聲明:在Jboss Seam應用程序中,如何確保每個異常都會導致自定義錯誤頁面?

<exception> 
    <http-error error-code="500" /> 
</exception> 

,這在我的web.xml:

<error-page> 
    <error-code>500</error-code> 
    <location>/error500.html</location> 
</error-page> 

儘管如此,有時當一個異常被拋出我得到的調試頁面,即使在生產中。我讀here,當在RENDER_RESPONSE階段引發異常時,由於響應已被髮送,因此不會發生重定向。我有兩個問題:

  • 如何確定在此階段是否拋出異常?
  • 無論拋出異常,可以顯示自定義錯誤頁面嗎?如果是這樣,我該如何做到這一點?

回答

1

如果您在生產環境中得到了調試頁面,這意味着您沒有正確地將調試設置爲false。

如果您使用的是facelets,還必須記得將facelets調試設置爲false。

<context-param> 
    <param-name>facelets.DEVELOPMENT</param-name> 
    <param-value>false</param-value> 
</context-param> 

除了

<core:init debug="false" jndi-pattern="somepattern"/> 

現在Init.instance().isDebug()應導致false

讓每一個例外,默認爲一個錯誤頁面,在pages.xml寫這

<exception> 
    <redirect view-id="/error.xhtml"> 
     <message severity="error">Error</message> 
    </redirect> 
</exception> 
1

我認爲你需要調試在components.xml

<core:init debug="false" jndi-pattern="n2/#{ejbName}/local"/>

相關問題