#spring #tomcat
#spring #tomcat
Вопрос:
Я настраиваю логику обработки исключений для составного проекта с общей страницей ошибок (которая размещена в другой части проекта). Когда я попытался перенаправить на внешний URL-адрес при исключении, tomcat 8.5.39 вместо этого показывает ошибку по умолчанию. Забавно, что это, похоже, отлично работает в tomcat 8.5.38
Я перепробовал много разных методов обработки исключений, но все они, похоже, не работают для внешних перенаправлений.
Итак, в настоящее время у меня есть что-то подобное в моем web.xml файл:
...
<error-page>
<error-code>404</error-code>
<location>/error/error404</location>
</error-page>
...
и для моего контроллера Spring,
@Controller
@RequestMapping(value = "/error")
public class ErrorHandler{
...
@GetMapping(value = "error404")
public String error404(){
return "redirect:http://{myproject}/{404errorPage}";
}
...
}
Я ожидаю, что этот код перенаправит пользователя на http://{myproject}/ {404errorPage} при возникновении ошибки 404, которая отлично работает в tomcat 8.5.38. Но в 8.5.39, похоже, они изменили логику обработки ошибок, и на ней будет отображаться страница ошибок по умолчанию (страница браузера по умолчанию 404).
Любой ввод или идея были бы чрезвычайно полезны.
Комментарии:
1. Я еще немного покопался и обнаружил, что заголовок сообщения показывает 404 для 8.5.39 и 302 для 8.5.38, чего я и хочу. Все остальное (включая местоположение перенаправления) выглядит нормально.
Ответ №1:
Это известная регрессия в 8.5.39, которая исправлена в только что выпущенном 8.5.40.
Комментарии:
1. Вау, большое спасибо за исправление 🙂 я продолжу и обновлюсь до 8.5.40