Spring

[EgovFramework] context-syslogaop.xml aop Error

hellooooo 2021. 10. 12. 10:45
728x90

 

 

egovframework:시스템로그조회 [eGovFrame]

시스템로그조회는 시스템 사용시 발생하는 각종 로그를 검색, 조회하는 기능을 제공한다. 시스템로그조회는 시스템로그의 등록, 조회, 목록, 삭제, 요약의 기능을 수반한다. ① 시스템로그등록

www.egovframe.go.kr

egov 공통 컴포넌트인 시스템 로그 조회를 적용하다 아래와 같은 에러 메시지가 출력되었다.

org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'service명' 
is expected to be of type 'egovframework.pcr.main.web.service.service명' 
but was actually of type 'com.sun.proxy.$Proxy51'

원인 : spring aop 버전이 낮거나, proxy-target-class가 설정되어있지 않아서. 

 

여기서 Proxy란 자신이 클라이언트가 사용하려고 하는 실제 대상인 것처럼 위장해서 클라이언트의 요청을 받아주는 것을 대리자, 대리인과 같은 역할을 하는 객체의 의미한다.

 해결방법 1. 

spring-core 4.0 버전부터는 cglib가 사라졌다. pom.xml에 spring-aop version을 확인해보고 vesrion up을 시켜준다. 

 해결방법 2. 

context-syslogaop.xml 파일에 proxy-target-class="true" 추가 또는 controller에 @EnableAspectJAutoProxy 추가 

<aop:aspectj-autoproxy proxy-target-class="true"/>
 @EnableAspectJAutoProxy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고 : https://lts0606.tistory.com/71