IT/자바, 스프링

java.lang.ClassCastException

thesse 2022. 3. 24. 11:23
300x250
반응형
java.lang.ClassCastException: class org.springframework.web.multipart.support.StandardMultipartHttpServletRequest cannot be cast to class org.springframework.web.util.ContentCachingRequestWrapper (org.springframework.web.multipart.support.StandardMultipartHttpServletRequest and org.springframework.web.util.ContentCachingRequestWrapper are in unnamed module of loader 'app')

 

multipart 이미지 파일을 업로드하는 api를 테스트하는데

파일 업로드는 잘 됐고 db도 정상적으로 커밋됐지만 로그에는 위와 같은 익셉션 로그가 떴다.

 

바로 앞 상황을 보면 doFilterInternal로 들어와 있는데

spring security 필터체인이 되돌아나가다가 익셉션이 난 것이다.

일전에 Json 리퀘스트의 body를 로그로 찍어보려고 추가했던 커스텀 필터에서 일어난 것이다.

 

 

 

원인은 json 컨텐츠를 상정하고 받은 request가 json이 아닌 MultipartFile이 담긴 form-data이기 때문이다.

그래서 StandardMultipartHttpServletRequest 를 ContentCachingRequestWrapper 로 캐스트할 수 없다고 익셉션이 난 것.

 

지금은 딱히 json body를 로깅할 필요가 없으므로 커스텀필터를 삭제하는 것으로 해결했는데

만일 로그 유지가 필요하다면 아래 블로그를 참고할 수 있을듯

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

 

300x250
반응형