프로그래밍 이슈일지

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> 권장한다.