본문 바로가기
spring

[SpringBoot3] MultipartException, FileCountLimitExceededException 발생 이슈

by moonsiri 2025. 6. 27.
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 요청 파싱 정책이 변경되어, 기본 허용 파일 수 제한에 걸리는 경우 예외가 발생합니다.


해결 방법

application.yml 또는 TomcatCustomizer에 아래 설정을 추가하여 Tomcat의 파일 수 및 헤더 크기 제한을 완화합니다.

server:
  tomcat:
    max-part-count: 50
    max-part-header-size: 1024
connector.setMaxPartCount(50);
connector.setMaxPartHeaderSize(1024);

└ 적절한 max-part-countmax-part-header-size 확인 필요


권장 사항

현재 해당 이슈는 Spring Boot 3.4.7 및 3.5.x 버전에서 발생 중이며, 아직 안정적인 운영 환경에서는 사용하기 어려운 상태로 보입니다.

운영 환경에서는 안정성이 검증된 버전 사용을 권장드립니다.

728x90
반응형

댓글