记录一次排错经历
- 关于
undertow
容器配置文件上传大小,首先网上看了一波关于如何调整,主要参数是两个
spring.servlet.multipart.max-file-size=50MB
spring.servlet.multipart.max-request-size=50MB
- 具体调整多大就看这两个参数设置的多大。
按照上面的参数,上传最大附件是50M,实际测验过程中,没有生效。报错了,看报错内容上写的应该是一个默认值
10485760
,换算为M是10M。
java.lang.IllegalStateException: io.undertow.server.RequestTooBigException: UT000020: Connection terminated as request was larger than 10485760
at io.undertow.servlet.spec.HttpServletRequestImpl.parseFormData(HttpServletRequestImpl.java:837)
at io.undertow.servlet.spec.HttpServletRequestImpl.getParameter(HttpServletRequestImpl.java:714)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:85)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at org.springframework.cloud.sleuth.instrument.web.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.java:50)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
- 最后测试了是因为这两个参数值不能设置成一样大(网上的很多教程两个参数设置的都是一样的),
max-request-size
一定要比max-file-size
大才行,最终参数调整为,生效了。
spring.servlet.multipart.max-file-size=50MB
spring.servlet.multipart.max-request-size=51MB
上面环境针对的是Spring Boot 2.x 版本,如果是低于2版本的请参考其他配置