728x90
반응형
기준일 : 2025-06-27
Spring Boot 최신 버전 : 3.5.3
발생 버전
- Spring Boot 3.4.7
- Spring Boot 3.5.1 이상
발생한 예외 Stack Trace 일부 발췌
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:133) ~[spring-web-6.2.8.jar:6.2.8]
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:112) ~[spring-web-6.2.8.jar:6.2.8]
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.<init>(StandardMultipartHttpServletRequest.java:88) ~[spring-web-6.2.8.jar:6.2.8]
at org.springframework.web.multipart.support.StandardServletMultipartResolver.resolveMultipart(StandardServletMultipartResolver.java:112) ~[spring-web-6.2.8.jar:6.2.8]
...
Caused by: org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException: attachment
at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:459) ~[tomcat-embed-core-10.1.42.jar:10.1.42]
at org.apache.catalina.connector.Request.parseParts(Request.java:2650) ~[tomcat-embed-core-10.1.42.jar:10.1.42]
at org.apache.catalina.connector.Request.getParts(Request.java:2536) ~[tomcat-embed-core-10.1.42.jar:10.1.42]
at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:773) ~[tomcat-embed-core-10.1.42.jar:10.1.42]
at jakarta.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:315) ~[tomcat-embed-core-10.1.42.jar:6.0]
at jakarta.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:315) ~[tomcat-embed-core-10.1.42.jar:6.0]
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:95) ~[spring-web-6.2.8.jar:6.2.8]
... 55 common frames omitted
원인
Spring Boot 3.4.7, 3.5.1 버전에서 Tomcat이 10.1.42 버전으로 업그레이드되면서, Tomcat의 multipart 요청 파싱 정책이 변경되어, 기본 허용 파일 수 제한에 걸리는 경우 예외가 발생합니다.
- Spring Boot 3.4.7 Release Note - https://github.com/spring-projects/spring-boot/releases/tag/v3.4.7
- Spring Boot 3.5.1 Release Note - https://github.com/spring-projects/spring-boot/releases/tag/v3.5.1
- 관련 이슈 - https://github.com/spring-projects/spring-boot/issues/45881
해결 방법
application.yml 또는 TomcatCustomizer에 아래 설정을 추가하여 Tomcat의 파일 수 및 헤더 크기 제한을 완화합니다.
server:
tomcat:
max-part-count: 50
max-part-header-size: 1024
connector.setMaxPartCount(50);
connector.setMaxPartHeaderSize(1024);
└ 적절한 max-part-count와 max-part-header-size 확인 필요
권장 사항
현재 해당 이슈는 Spring Boot 3.4.7 및 3.5.x 버전에서 발생 중이며, 아직 안정적인 운영 환경에서는 사용하기 어려운 상태로 보입니다.
운영 환경에서는 안정성이 검증된 버전 사용을 권장드립니다.
728x90
반응형
'spring' 카테고리의 다른 글
| [SpringBoot] 선언형 HTTP 클라이언트 OpenFeign이란? (0) | 2025.07.02 |
|---|---|
| [SpringBoot3] Resilience4j Java Config 설정 (0) | 2025.05.20 |
| [SpringBoot] logback xml을 java configuration으로 변환하기 (0) | 2024.11.04 |
| [SpringBoot] Spring Profile과 환경별 resource 설정 (0) | 2024.11.04 |
| Spring MVC의 PathPattern (AntPathMatcher, PathPatternParser) (0) | 2024.05.08 |
댓글