我已经在pages.xml中声明了以下内容:
<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阶段抛出异常时,由于响应已经发送,因此不会发生重定向。我有两个问题:
答案 0 :(得分:2)
答案 1 :(得分:1)
我认为你需要在components.xml中将debug设置为false
<core:init debug="false" jndi-pattern="n2/#{ejbName}/local"/>
答案 2 :(得分:1)
如果您在生产中获得调试页面,则表示您未正确将调试设置为false。
如果您正在使用facelets,您还必须记住将facelets debug设置为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>