0

Spring AOP を使用して GWT-RPC アプリケーションのメソッドをインターセプトしようとしています (GWT-Server ライブラリを使用しているため、RPC サービスは RemoteServiceServlet を拡張しません)。war を 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 のアスペクト設定は正しくなく、実際にはコンテキスト内のほとんどすべてのクラスをターゲットにしようとしていました。これが、複数の CacheManager インスタンスが存在するため、EhCache が問題を引き起こし始めた理由です (CacheManager のような CGLIB プロキシのため)。インターフェイスを実装します)

于 2012-12-13T07:11:13.483 に答える