0

我正在尝试使用 Spring AOP 来拦截我的 GWT-RPC 应用程序的方法(使用 GWT-Server 库,因此 RPC 服务不扩展 RemoteServiceServlet)。当我将我的战争部署到 tomcat 并启动应用程序时,CGLIB 由于某种原因失败。但是我不明白为什么CGLIB首先被用于代理。由于我的 RPC 类实现了接口,它不应该使用 JDK 动态代理吗?

我需要做些什么来调试这个问题吗?好心提醒。

注意:仅供参考,Spring 遇到了这个异常,但我相信这是一个不同的问题,我无法理解为什么 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.
4

1 回答 1

0

为了其他(罕见的)可能犯同样错误的人而回答。

spring AOP 的方面设置不正确,实际上试图针对上下文中的几乎所有类,这就是为什么 EhCache 开始引起问题,因为有多个 CacheManager 实例(因为 CacheManager 没有 CGLIB 代理实现一个接口)

于 2012-12-13T07:11:13.483 回答