CGLib动态代理测试不通过-Unable to load cache item

weixin_38062058 2016-12-28 09:54:23
基本类: public class HelloWorld{ public void sayHello(String name) { System.err.println(name+":Hello World~"); } } 代理类: public class Proxy_CGLib implements MethodInterceptor{ private Object target; public Object getInstance(Object target){ this.target=target; Enhancer enhancer =new Enhancer(); enhancer.setSuperclass(this.target.getClass()); enhancer.setCallback(this); return enhancer.create(); } @Override //回调方法 public Object intercept(Object obj, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { Object returnObj = methodProxy.invokeSuper(obj, args); return returnObj; } } 测试: public class CGLibTest { public static void main(String[] args) { Proxy_CGLib cglib=new Proxy_CGLib(); HelloWorld helloService =(HelloWorld) cglib.getInstance(new HelloWorld()); helloService.sayHello("yw"); } } 报错信息: Exception in thread "main" java.lang.ExceptionInInitializerError at com.yan.cglib.Proxy_CGLib.getInstance(Proxy_CGLib.java:15) at com.yan.cglib.CGLibTest.main(CGLibTest.java:6) Caused by: java.lang.IllegalStateException: Unable to load cache item at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:79) at net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34) at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:116) at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:291) at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153) at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:73) ... 2 more Caused by: java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:621) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at net.sf.cglib.core.DefaultGeneratorStrategy.getClassVisitor(DefaultGeneratorStrategy.java:30) at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24) at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:329) at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:93) at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:91) at net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61) ... 9 more 使用的jar包: cglib-3.2.4.jar asm-3.3.1.jar 请问问题出在哪?
...全文
773 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38099114 2017-09-01
  • 打赏
  • 举报
回复
我也遇到这个问题了 请问你解决没 怎么解决的

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧