WebSphere регистрирует предупреждающее сообщение “SRTServletRes W, ПРЕДУПРЕЖДАЮЩИЙ: не Может установить заголовок. Ответ, уже фиксировавший” для одного запроса JSP. Мне нужны respone заголовки позже в моем коде. Я провел некоторое исследование и понял, что Servlet пытается отправить больше данных в поток вывода, но поток уже фиксировавший. Я не понял, почему это происходит только с этим конкретным JSP, поскольку этот код Servlet хорошо работает для другого JSPs. Эта страница не перенаправляется, и я возвращаю ответ без заголовков ответа.
Когда ответ зафиксирован, это означает, что, по крайней мере, заголовки уже отправлены на сторону клиента. Вы не можете установить/изменить заголовки, когда ответ уже зафиксирован, потому что уже слишком поздно.
Ответ фиксируется при выполнении одного или более из следующих условий:
HttpServletResponse#sendRedirect()
. flush()
было вызвано в поток вывода ответа, либо сервлет, либо JSP. Ограничение буфера в 2К настраивается в конфигурации сервера приложений.
Необходимо изменить логику кода таким образом, чтобы она устанавливала только заголовки до фиксации ответа. Вы должны никогда не устанавливать/менять заголовки ответа с помощью скриплетов внутри/половинунунуну JSP. Это следует делать только в фильтре
перед продолжением цепочки или в регуляторе страниц сервлетах
перед отправкой запроса. Также следите за тем, чтобы ни один из них не был вызван включающим файлом JSP.