我正面临一个非常奇怪的行为。我将jar打包到一个容器中以将其部署到ECS上,但是,当我将 max-file-size 定义为时,application.yaml似乎没有生效100M 。
当在本地启动应用程序或通过执行胖子启动应用程序时,效果很好。
这是我的 application.yaml
spring:
http.multipart:
max-file-size: 100MB
max-request-size: 100MB
Dockerfile
FROM openjdk:8-jre-alpine
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=prod","-jar","/app.jar"]
AWS上的错误
{
"timestamp": 1535489967123,
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.web.multipart.MultipartException",
"message": "Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (43258070) exceeds the configured maximum (10485760)",
"path": "/fake/path/loader"
}
答案 0 :(得分:0)
问题主要出在您的application.yaml未被正确打包。 或者,您可以按以下方式为spring jar使用命令行覆盖:
java -jar your-app.jar --spring.http.multipart.max-file-size=100MB --spring.http.multipart.max-request-size=100MB
或者您可以参考此答案中提到的外部应用程序文件加载: External Application Props