Я хочу, чтобы ошибки шаблона Freemarker отвечали со статусом 500 и таким образом заставляли Spring отображать мою страницу ошибок по умолчанию для внутренних ошибок сервера. Однако, как бы я ни пытался настроить Freemaker template_exception_handler
, ответ никогда не бывает 500.
Метод обработчика исключений по умолчанию - DEBUG
, который выдает сообщение / трассировку стека в шаблоне с ошибками, в то время как остальная часть шаблона (до ошибки) отображается.
Установка обработчика на RETHROW
скрывает сообщение / трассировку стека, но приводит к частичной визуализации шаблонов.
Установка обработчика на IGNORE
отображает шаблон в полях полного пропуска, которые не могут быть проанализированы.
Все вышеперечисленное выдает исключение, которое видно на сервере. Отладка пружин BasicErrorController
исключение обработано - но ответ от BasicErrorController по-прежнему имеет статус 200.
Я попытался реализовать свой собственный ErrorHandlingController, который в основном просто сопоставляется с /error
и отображает ModelAndView с установленным статусом 500. Тем не менее, ответ равен 200, и шаблон отображается.
Согласно этому ответу решение состоит в том, чтобы установить конфигурацию обработчика исключений шаблона на RETRHOW
- но, как упоминалось выше, это не обеспечивает ожидаемый результат.
Сейчас я снимаю пробелы и не знаю, что еще попробовать. Есть предложения?
Желаемый результат : При генерировании рендеринга TemplateException Spring должен ответить с внутренней ошибкой сервера HTTP code code 500 и отобразить страницу с моей ошибкой для этого. (Который, кстати, работает для любых других типов исключений, возникающих в бэкэнде ...)
Spring boot version: 2.0.1.RELEASE
Весенняя версия: 5.0.5. РЕЛИЗ