【发布时间】:2012-09-08 08:56:47
【问题描述】:
我使用 cglib MethodInterceptor 来包装服务。在对服务的每次调用中,它应该打开数据会话,将调用传递给服务并最终关闭会话。
但是,我注意到从 Finalizer 调用它时行为异常。我得到以下堆栈跟踪:
java.lang.IllegalArgumentException: interface my.pkg.SomeInterface is not visible from class loader
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:353)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at my.pkg.ProxyFactory.create(ProxyFactory.java:68)
at my.pkg.SomeService.make(SomeService.java:181)
at my.pkg.SomeService$SessionWrappingInterceptor.intercept(SomeService.java:1275)
at my.pkg.SomeService$$EnhancerByCGLIB$$b58faf6a.finalize(<generated>)
at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
我做错了什么?我该如何解决?
【问题讨论】: