Grails Custom Error Page(500)& Tomcat的

时间:2010-06-07 14:05:48

标签: tomcat grails exception-handling

我正在尝试在Grails代码抛出任何Unhandled Exception之后实现简单的自定义错误页面。我已将500映射到我的控制器:

    "500" (
        controller: "error",
        action:     "serverError"
    )

并在控制器中处理异常:

def serverError = {
    try {
        // first check, if some exception was reported
        if (!request.exception) {
            return
        }

        // send mail with stack trace if requested
        if (shouldSendErrorReports) {
            log.debug "Mail was sent out successfully..."
        }

    } catch (Throwable e) {
        log.error "Error while reporting an error: " + e
    }

    // redirect to error message
    redirect (
        action: "errorMessage"
    )
}
// lines omitted for clarity

“errorMessage”操作只是一个简单的视图,默认情况下使用静态内容呈现GSP页面 - 信息和点击重定向窗口。 该页面(我希望)正确的序言:

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page isErrorPage="true" %>

现在,当通过NetBeans(Jetty)在本地测试时,一切正常,并显示errorMessage页面;部署到TEST环境(Tomcat6)时,将显示Tomcat堆栈跟踪。

如何防止显示此Tomcat堆栈跟踪?我有两个想法 - 首先,我没有真正正确地转储(处理?)异常,所以它给Tomcat带来了泡沫 - 第二,Tomcat有一些配置值设置,所以无论如何它都会显示堆栈跟踪。 / p>

如果您对此有任何想法,请告诉我。花了大约5个小时搞清楚......: - /

谢谢!

2 个答案:

答案 0 :(得分:0)

def error = {             def exception = request ['javax.servlet.error.exception'] ?. cause?.cause             if(例外){

        }       
    }

答案 1 :(得分:0)

你提出这个问题已经过去了一年多,但其他人也可以受益......

您是否尝试过error-pages-fix插件? http://www.grails.org/plugin/error-pages-fix