프로그래밍 이슈일지
interceptors 이슈
RunTimeException
2021. 10. 13. 15:01
- 이슈일자 : 2021년 10월 12일 ~ 13일
- 이슈내용 : interceptors url catch로 인한 이슈 발생 (responseEntity generic type InputStreamResource에 있는 자료가 response(응답) 할 때 문제가 발생했다.)
- 에러내용 : 읽어온 자료를 URL로 확인 할 수 없다는 에러문구 발생
- --> resource loaded through InputStream cannot be resolved to URL
- 해결한 과정 : 전자정부 프레임워크에서 제공하는 SimpleUrlAnnotationHandlerMapping 설정에서 Spring 3부터 제공하는 mvc:interceptors 이용하고 특정 url pattern ==> ex)/pdf/*.do ... exculde-mapping tag를 이용하여 제외시켜 해결했다. + mvc:annotation-driven tag도 추가해야 정상 작동한다.
- 이슈가 발생하고 나의 심정 : 프로젝트가 생각보다 커서 어디서 catch하는지 좀 오래걸려서 힘들었다..... 그리고 SimpleUrlAnnotationHandlerMapping 최대한 해볼려고 했으나... 답이 안 보여서 pass.....
기존 HandlerMapping에는 Interceptor를 모든 url에 일관적으로만 적용할 수 있었기 때문에 전자정부 프레임워크에서는 SimpleUrlAnnotationHandlerMapping 제공했고 Spring 3버전 부터는 Spring이 제공하는 <mvc:interceptors> 권장한다. SimpleUrlAnnotationHandlerMapping는 deprecated 되었다.
SimpleUrlAnnotationHandlerMapping : URL별로 Interceptor를 걸 수 있도록 설정할 수 있는 클래스이다.
--> Spring 3 Version 부터는 deprecated 되고 Spring에서 제공하는 <mvc:interceptors> 권장한다.