记录一次排错经历

  • 关于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版本的请参考其他配置