2012-09-06 4 views
0

GWT-RPC 응용 프로그램의 메소드를 가로 채기 위해 Spring AOP를 사용하려고합니다 (RPC 서비스가 RemoteServiceServlet을 확장하지 않도록 GWT-Server 라이브러리 사용). 바람둥이에 전쟁을 전개하고 응용 프로그램을 시작할 때 CGLIB가 실패합니다. 하지만 CGLIB가 처음 프록시에 사용되는 이유를 이해하지 못합니다. 내 RPC 클래스가 인터페이스를 구현하므로 JDK 동적 프록시를 사용해서는 안됩니까?클래스가 인터페이스를 구현할 때도 CGLIB 프록시를 사용하여 스프링

이 문제를 디버깅하려면해야 할 일이 있습니까? 친절하게 조언하십시오.

참고 :이 예외가 발생하면 참고하시기 바랍니다.하지만 저는 이것이 다른 문제라고 생각합니다. 왜 CGLIB 프록시가 그려지는지 이해할 수 없습니다.

Caused by: net.sf.cglib.core.CodeGenerationException: net.sf.ehcache.CacheException-->Another unnamed CacheManager already exists 
in the same VM. Please provide unique names for each CacheManager in the config 
or do one of following: 
1. Use one of the CacheManager.create() static factory methods to reuse same CacheManager with same name or create one if necessary 
2. Shutdown the earlier cacheManager before creating new one with same name. 
+1

어떻게 실패합니까? 전체 스택 트레이스를 보여줄 수 있습니까? – axtavt

답변

0

동일한 실수를 저지른 다른 (희귀 한) 사람들을 위해 응답.

스프링 AOP에 대한 aspect 설정이 정확하지 않고 사실상 컨텍스트에서 거의 모든 클래스를 대상으로하고있다. 그래서 EhCache가 하나 이상의 CacheManager 인스턴스가있는 것처럼 문제를 일으킨다 (CGLIB 프록시 때문에 CacheManager가 인터페이스를 구현하지 않음)

관련 문제