ServletResponse.setBufferSize在Tomcat 7中不起作用?

Jos*_*ger 5 java tomcat servlets tomcat7

我正在使用ServletResponse.setBufferSize增加响应的缓冲区大小,但Tomcat 7仍然抛出缓冲区大小不够大的异常.这是Tomcat 7.0.32中的错误吗?

这是我的伪/代码 -

@Override
protected void writeInternal(Object o, HttpOutputMessage outputMessage)
    throws IOException, HttpMessageNotWritableException {

    if (some condition)
    {
        ((ServletServerHttpResponse)outputMessage).getServletResponse().setBufferSize(Integer.MAX_VALUE);
        outputMessage.getHeaders().set("Custom-Header", gson.toJson(big payload));
    }

    // ...
Run Code Online (Sandbox Code Playgroud)

这是例外 -

org.apache.coyote.http11.HeadersTooLargeException:尝试将更多数据写入响应标头,而不是缓冲区中有可用空间.增加连接器上的maxHttpHeaderSize或将更少的数据写入响应头.

我需要重置缓冲区吗? reset()不工作.

编辑:我正在寻找能够根据"某些条件"在个别响应级别更改最大标头大小的能力.

Kay*_*man 0

您需要修改server.xml中HTTP连接器的maxHttpHeaderSize,而不是代码。

这里。