JHipster上传6MB文件遇RequestTooBigException,如何修改配置?
解决JHipster中Undertow RequestTooBigException的配置位置
嘿,这个问题我太熟悉了!你碰到的RequestTooBigException是因为Undertow服务器默认限制了请求的最大大小(默认是10MB,也就是错误里的10485760字节)——哪怕你传的是6MB的文件,如果请求里还有其他表单数据或参数,总大小也可能触碰到这个限制。下面给你列出几个关键的配置位置,按需调整即可:
1. Spring Boot核心配置文件(最常用)
直接在你的application.yml或application.properties里添加配置,同步调整Spring Multipart和Undertow的限制:
YAML格式(application.yml)
server: undertow: max-http-post-size: 52428800 # 这里设为50MB,可根据需求修改(单位:字节) spring: servlet: multipart: max-file-size: 50MB # 单个文件的最大大小 max-request-size: 50MB # 整个请求的最大大小
Properties格式(application.properties)
server.undertow.max-http-post-size=52428800 spring.servlet.multipart.max-file-size=50MB spring.servlet.multipart.max-request-size=50MB
2. 网关层配置(如果用了JHipster Gateway)
如果你的应用是通过JHipster Gateway访问的,别忘在网关的配置文件里也加上上述配置——不然请求还没到业务服务,就被网关的Undertow拦截了。
3. 自定义Undertow配置类(进阶场景)
如果上述配置满足不了你的需求(比如需要更精细的Undertow参数调整),可以写一个自定义配置类:
import io.undertow.UndertowOptions; import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class UndertowConfig { @Bean public WebServerFactoryCustomizer<UndertowServletWebServerFactory> undertowCustomizer() { return factory -> { factory.addBuilderCustomizers(builder -> { // 设置最大POST请求大小,这里是50MB(字节) builder.setServerOption(UndertowOptions.MAX_HTTP_POST_SIZE, 52428800); // 可选:如果有特殊URL字符需求,可开启这个配置 builder.setServerOption(UndertowOptions.ALLOW_UNESCAPED_CHARACTERS_IN_URL, true); }); }; } }
调整完配置后重启服务,应该就能正常上传文件啦!
内容的提问来源于stack exchange,提问作者user1723583
相关产品推荐
相关产品推荐

