在学习ssm开发时,我的一个网盘项目在选出文件集合后封装成固定格式后向前台发送响应,以让这些文件信息展示到前端页面。但是,由于封装文件占用了大量的空间导致出现了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.
上网查资料后得到解决办法:更改Tomcat配置文件server.xml中maxHttpHeaderSize值的大小,具体内容如下:
<Connector
connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
maxHttpHeaderSize="65535"/>
重启Tomcat后,问题被解决。
但是,数据库数据应在前端页面进行封装,不应当在后台进行封装,因此,该问题的正确解决方案不是改变Tomcat配置文件中maxHttpHeaderSize值的大小,而应当把封装数据库数据的代码迁移到前端页面。