我写了一个代理类基本内容如下:public class ActiveRecordProxy implements MethodInterceptor{
private Enhancer enhancer;
private Object target;
public ActiveRecordProxy(){
enhancer = new Enhancer();
target = null;
}
@SuppressWarnings("unchecked")
public <E> E getProxyObject(Class<E> clasz){
enhancer.setSuperclass(clasz);
enhancer.setCallback(this);
Object obj = enhancer.create();
return (E)obj;
}
}
可是当在查询数据库调用该类的时候:ActiveRecordProxy proxy = new ActiveRecordProxy();抛了异常。
我debug跟下去看到当执行到代码里面的 enhancer = new Enhancer();时抛了异常。
抛出的异常如下:java.lang.ClassCastException: net.sf.cglib.proxy.Enhancer$EnhancerKey$$KeyFactoryByCGLIB$$7fb24d72 cannot be cast to net.sf.cglib.core.KeyFactory
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
at com.et.ar.ActiveRecordProxy.<init>(ActiveRecordProxy.java:16)
at com.et.ar.DaoSupport.select(DaoSupport.java:281)问题很奇怪,在我自己的电脑上是完全正确的,但是我把它转移到公司电脑上的时候就出现了这个问题。
哪位高人能帮助指点一下,小弟万分感激。
private Enhancer enhancer;
private Object target;
public ActiveRecordProxy(){
enhancer = new Enhancer();
target = null;
}
@SuppressWarnings("unchecked")
public <E> E getProxyObject(Class<E> clasz){
enhancer.setSuperclass(clasz);
enhancer.setCallback(this);
Object obj = enhancer.create();
return (E)obj;
}
}
可是当在查询数据库调用该类的时候:ActiveRecordProxy proxy = new ActiveRecordProxy();抛了异常。
我debug跟下去看到当执行到代码里面的 enhancer = new Enhancer();时抛了异常。
抛出的异常如下:java.lang.ClassCastException: net.sf.cglib.proxy.Enhancer$EnhancerKey$$KeyFactoryByCGLIB$$7fb24d72 cannot be cast to net.sf.cglib.core.KeyFactory
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
at com.et.ar.ActiveRecordProxy.<init>(ActiveRecordProxy.java:16)
at com.et.ar.DaoSupport.select(DaoSupport.java:281)问题很奇怪,在我自己的电脑上是完全正确的,但是我把它转移到公司电脑上的时候就出现了这个问题。
哪位高人能帮助指点一下,小弟万分感激。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货