【发布时间】:2014-03-05 12:32:27
【问题描述】:
我正在使用 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));
}
// ...
这是个例外 -
org.apache.coyote.http11.HeadersTooLargeException:试图向响应头写入比缓冲区可用空间更多的数据。增加连接器上的 maxHttpHeaderSize 或向响应标头写入更少的数据。
我需要重置缓冲区吗? reset() 无效。
编辑:我正在寻找基于“某些条件”在单个响应级别更改最大标头大小的能力。
【问题讨论】:
-
将payload作为响应体传递,而不是
Custom-Header.
标签: java tomcat servlets tomcat7