При несуществующем RequestMapping возвращается 500 вместо 404

220
18 июля 2022, 20:00

При несуществующем RequesMapping (к примеру /fsdghfg/dsfgh/sdfghjk/dsfghjk) возвращается 500 вместо 404, ни один из Методов при этом не обрабатывается

Answer 1

Такое бывает, когда путь содержит двойной слэш.

В этом случае шаблон Thymeleaf не будет найден (см. https://github.com/spring-projects/spring-framework/issues/20155). Также Spring Security может бросить RequestRejectedException: The request was rejected because the URL was not normalized.

Для того, чтобы это исправить можно как-то нормализовывать такие пути, но это может быть небезопасно (и именно из-за этого Spring так себя ведет). Другой подход состоит в том, чтобы узнать какие исключения выбрасываются и сделать для них ExceptinHandler-ы. Если вы пойдете по этому пути, имейте ввиду, что не все механизмы для обработки исключений в Spring будут работать, так как вышеназванные исключения могут происходить на ранних этапах обработки запроса. Это особенно касается исключения от Spring Security так как он происходит в Servlet Filter-е еще до того, как выполнение дойдет до Spring MVC.

READ ALSO
Запуск jar на терминал

Запуск jar на терминал

Такая проблема: были созданы сервер и клиент и каждый по-отдельности помещён в jar пакетКак запустить сервер и клиент на терминале (Linux)? По отдельности...

293
Вопрос по переопределению метода

Вопрос по переопределению метода

Метод About() переопределен, экземпляр класса создан и данные внесеныПочему метод dino

246
Django HtmlCalendar как перевести месяц на русский язык?

Django HtmlCalendar как перевести месяц на русский язык?

Разрабатываю HTMLCalendar с событиями на Django и не знаю как перевести месяц на русский язык, вывод в английском формате, а мне нужно на русском, может...

518
Добавление визуальных эффектов

Добавление визуальных эффектов

На платформе лежит сайт, редактировать там особо ничего нельзя, но есть такой код на страницевот не пойду как уменьшить размер отображаемых...

364