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