我正在使用ServletResponse.setBufferSize增加響應的緩衝區大小,但Tomcat 7仍然拋出緩衝區大小不夠大的異常。這是Tomcat 7.0.32中的錯誤嗎?ServletResponse.setBufferSize在Tomcat 7中不起作用?
這裏是我的僞/碼 -
@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()
沒有工作。
編輯:我正在尋找能夠根據「某些條件」在個人響應級別更改最大標題大小。
的
maxHttpHeaderSize
屬性傳遞有效載荷爲響應體,而不是'定製Header.' – EJP