写入的响应头的数据超出缓Increase maxHttpHeaderSize on the connector or write less data into the response headers

最近写了带有文件上传的项目遇到的坑

报错问题:

严重: Servlet.service() for servlet [springServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.coyote.http11.HeadersTooLargeException: An attempt was made to write more data to the response headers than there was room available in the buffer. Increase maxHttpHeaderSize on the connector or write less data into the response headers.] with root cause
org.apache.coyote.http11.HeadersTooLargeException: An attempt was made to write more data to the response headers than there was room available in the buffer. Increase maxHttpHeaderSize on the connector or write less data into the response headers.
    at org.apache.coyote.http11.AbstractOutputBuffer.checkLengthBeforeWrite(AbstractOutputBuffer.java:547)
    at org.apache.coyote.http11.AbstractOutputBuffer.write(AbstractOutputBuffer.java:511)
    at org.apache.coyote.http11.AbstractOutputBuffer.write(AbstractOutputBuffer.java:428)
    at org.apache.coyote.http11.AbstractOutputBuffer.sendHeader(AbstractOutputBuffer.java:394)
    at org.apache.coyote.http11.AbstractHttp11Processor.prepareResponse(AbstractHttp11Processor.java:1540)
    at org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:773)
    at org.apache.coyote.Response.action(Response.java:174)
    at org.apache.coyote.Response.sendHeaders(Response.java:365)
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:352)
    at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:333)
    at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:101)
    at com.opensymphony.module.sitemesh.filter.RoutableServletOutputStream.flush(RoutableServletOutputStream.java:122)
    at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1045)
    at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:1821)
    at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.writeInternal(MappingJackson2HttpMessageConverter.java:204)
    at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:179)
    at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:148)
    at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:90)
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:189)
    at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:69)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:122)

主要问题描述的是:写入的响应头的数据超出缓冲区限制的大小,建议修改maxHttpHeaderSize的值,或者减少响应头的数据!

解决方案:

找到tomcatan'z安装目录下的 sever.xml

修改内容

把maxHttpHeaderSizesh,设置变大就好了。

<Connector port="8081" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />

猜你喜欢

转载自blog.csdn.net/qq_39229914/article/details/82461668