Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

개발합니다

[Spring] MultipartHttpServletRequest 클래스 에러 본문

Web/Spring

[Spring] MultipartHttpServletRequest 클래스 에러

돈기법 2022. 4. 9. 19:08

https://hyoj-j.tistory.com/36?category=1265604 

 

[Spring] poi 라이브러리를 이용한 엑셀 일괄 등록

Spring MVC + Maven 구조로 poi 라이브러리를 통해 엑셀 데이터를 읽고 DB에 저장하는 코드를 작성해봄. 스프링 강의는 많이 들었지만 전부 따라 하기만 했지 직접 구현해보는 건 처음이다 ... 그래도

hyoj-j.tistory.com

해당 포스팅에서 이어지는 내용입니다.

 

 

 


MultipartHttpServletRequest를 써서 파일 업로드를 사용하는데 클래스를 찾을 수 없다고 나왔다.

 

 

~ 에러 메세지 ~

java.lang.classcastexception: org.apache.catalina.connector.requestfacade cannot be cast to org.springframework.web.multipart.multiparthttpservletrequest

 

[원인 목록]

 

1. form 태그에 enctype="multipart/form-data" 속성이 없어서

 

2. CommonsMultipartResolver 설정이 되어있지 않기 때문에

 

 

나의 경우 두번째가 문제였다.

 

다른 사람의 코드를 참고할 때 포스팅에 보통 이런 부분까지는 작성하지 않기 때문에

많이 놓치고 에러가 뜨는 것 같다.

근데 나도 막상 포스팅을 해보니 설정 부분까지 다 적긴 애매해서 작성하지 않는다. ㅎㅎ;

이것도 다 경험이지 암 그럼 ~

 

[해결 방법]

1. servlet-context.xml에 MultipartResolver 추가

<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <beans:property name="maxUploadSize" value="10485760" />
</beans:bean>

 

2. pom.xml에 라이브러리 추가(commons-io & commons-fileupload)

<!-- multipartResolver -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>
       
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.2</version>
</dependency>
<!-- multipartResolver -->

간단하게 해결된다.

 

application.properties / pom.xml / build.gradle 요런 애들이랑 많이 친해져야 할 것 같다.

 

 

 

- 참고 글

https://jamong-icetea.tistory.com/66

 

[Spring] [첨부파일이슈] nested exception is java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cann

첨부파일 작업 중 아래와 같이 에러가 발생하는 경우가 있다. 내용을 번역해보면 RequestFacade를 multipartHttpServletRequest로 캐스팅할 수 없다는 내용이다. 이유를 확인해보면 - Form 데이터가 multipart/fo.

jamong-icetea.tistory.com

https://itstudyroom.tistory.com/entry/Spring%EC%9C%BC%EB%A1%9C-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C

 

Spring으로 파일 업로드

순서: 1) servlet-context.xml 세팅(MultipartResolver 추가) 2) pom.xml에서 사용할 라이브러리 추가(commons-io & commons-fileupload) 3) Board 빈 객체에 두 칼럼 추가 4) 컨트롤러에서 insert.do 수정 5) Bo..

itstudyroom.tistory.com