CGLib动态代理测试不通过-Unable to load cache item?
基础类
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
使用jar包
cglib-3.2.4.jar
asm-3.3.1.jar
各位大神,请问问题出在哪?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
遇到了同样的问题。通过修改cglib的jar包版本为2.2.2解决。