В Tomcat (v8.5.24) URL с параметром запроса, содержащим некодированную фигурную скобку ("{"), выдает ошибку 400.
Вы можете настроить Tomcat, чтобы разрешить это с помощью "relaxedQueryChars". Но я не этого хочу. Я попытался написать настраиваемую страницу ошибки и добавить ее в web.xml
<error-page>
<error-code>400</error-code>
<location>/error/error400</location>
</error-page>
Но это не работает, поскольку Tomcat действительно убивает запрос и не обрабатывает страницы с ошибками (org.apache.coyote.http11.Http11Processor: 737)
Кажется, с этим никак не справиться. Теперь попробовал справиться с этим в nginx. Но чтобы обработать это там, мне нужно установить «proxy_intercept_errors = on», и я не хочу перехватывать все коды ошибок с моего прокси.
Итак, в этом сценарии не повезло с рендерингом настраиваемой страницы 400? Или есть обходной путь?





Я также столкнулся с этой проблемой, и в качестве обходного пути я реализовал собственный ErrorReportValve, расширив класс org.apache.catalina.valves.ErrorReportValve и настроив его на моем Tomcat.
В этом действительно помогла следующая статья: http://robupcraft.com/tomcat-valves/
Обратите внимание, что для реализации (и успешной сборки) вам нужна зависимость tomcat-catalina.