Страница пользовательских ошибок Grails (500) и Tomcat - PullRequest
4 голосов
/ 07 июня 2010

Я пытаюсь реализовать простую пользовательскую страницу ошибок после любого необработанного исключения, генерируемого кодом Grails. Я сопоставил 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 имеет какое-то заданное значение конфигурации, поэтому он все равно отображает трассировку стека. 1012 *

Пожалуйста, если у вас есть какие-либо мысли по этому поводу, дайте мне знать. Потратьте 5 часов, чтобы понять это ...: - /

Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 июля 2011

Прошло уже больше года с тех пор, как вы задали этот вопрос, но и другие тоже могут извлечь выгоду ...

Вы пробовали плагин исправления ошибок страниц? http://www.grails.org/plugin/error-pages-fix

0 голосов
/ 07 июня 2010

def error = { def исключения = запрос ['javax.servlet.error.exception'] ?. причина? .cause if (исключение) {

        }       
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...