Spring AOP CGLib报个这错java.lang.reflect.InvocationTargetException-->null
我搞了两天了,都不知道为什么,现在在线等等高手指点。谢谢了,急啊。
异常:
net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:237)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
at spring.AOPInstrument.getInstrumentedClass(AOPInstrument.java:28)
at spring.CGLibTest.main(CGLibTest.java:15)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
... 4 more
Caused by: java.lang.SecurityException: class "spring.MessageWriter$$EnhancerByCGLIB$$b58bc1ae"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:611)
at java.lang.ClassLoader.defineClass(ClassLoader.java:532)
... 10 more
Exception in thread "main"
代码如下:
1.一个以后被代理的类public class MessageWriter { public void writeMessage()
{
System.out.print("World");
}
}
2.实现这个接口的一个“拦截器”import net.sf.cglib.proxy.MethodInterceptor;public class AOPInstrument implements MethodInterceptor { //private Logger log=Logger.getLogger(AOPInstrument.class);
private Enhancer enhancer=new Enhancer();
public Object getInstrumentedClass(Class clz)
{
Object proxy;
enhancer.setSuperclass(clz);
enhancer.setCallback(this);
proxy=enhancer.create();
return proxy;
}
public Object intercept(Object obj, Method method, Object[] methodParameters,
MethodProxy methodProxy) throws Throwable {
System.out.print("Hello ");
Object result=methodProxy.invokeSuper(obj, methodParameters);
System.out.print("!");
return result;
}}3.测试类public class CGLibTest { /**
* @param args
*/
public static void main(String[] args) {
AOPInstrument aopIns=new AOPInstrument();
MessageWriter writer=(MessageWriter)aopIns.getInstrumentedClass(spring.MessageWriter.class);
writer.writeMessage(); }}
我搞了两天了,都不知道为什么,现在在线等等高手指点。谢谢了,急啊。
异常:
net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:237)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
at spring.AOPInstrument.getInstrumentedClass(AOPInstrument.java:28)
at spring.CGLibTest.main(CGLibTest.java:15)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
... 4 more
Caused by: java.lang.SecurityException: class "spring.MessageWriter$$EnhancerByCGLIB$$b58bc1ae"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:611)
at java.lang.ClassLoader.defineClass(ClassLoader.java:532)
... 10 more
Exception in thread "main"
代码如下:
1.一个以后被代理的类public class MessageWriter { public void writeMessage()
{
System.out.print("World");
}
}
2.实现这个接口的一个“拦截器”import net.sf.cglib.proxy.MethodInterceptor;public class AOPInstrument implements MethodInterceptor { //private Logger log=Logger.getLogger(AOPInstrument.class);
private Enhancer enhancer=new Enhancer();
public Object getInstrumentedClass(Class clz)
{
Object proxy;
enhancer.setSuperclass(clz);
enhancer.setCallback(this);
proxy=enhancer.create();
return proxy;
}
public Object intercept(Object obj, Method method, Object[] methodParameters,
MethodProxy methodProxy) throws Throwable {
System.out.print("Hello ");
Object result=methodProxy.invokeSuper(obj, methodParameters);
System.out.print("!");
return result;
}}3.测试类public class CGLibTest { /**
* @param args
*/
public static void main(String[] args) {
AOPInstrument aopIns=new AOPInstrument();
MessageWriter writer=(MessageWriter)aopIns.getInstrumentedClass(spring.MessageWriter.class);
writer.writeMessage(); }}
解决方案 »
- 路径问题,请帮忙,急!!!
- 请问为什么将Tomcat部署到WebLogic报DeploymentManagerCreationException?
- 有三个对于Struts的问题请教
- structs验证框架验证表单含有初始化值的问题
- jprofiler能安装在无界面的linux服务器上吗?
- hibernate 老说没有配方言
- 有关类与对象的问题求解
- hibernate list中的顺序问题
- 请教如何解决j2me连接servlet的乱码问题?
- 帮忙,救命啊--struts+hibernate在tomcat下开发OK,移植到websphare下就有了问题
- myeclipse7.0重启后, 部署好了的工程无法再次正常使用了
- 最近无聊测试jxl.jar导出Excel的性能如何
Aop 一个是Proxy代理,别一个是CGLib代理。
而这个CGLib总做不对。请高手指点。谢谢
运行程序时,总报下面的错:
java.lang.reflect.InvocationTargetException-->null
Object result=methodProxy.invokeSuper(obj, methodParameters);
} System.out.print("!");
Caused by: java.lang.SecurityException: class "spring.MessageWriter$$EnhancerByCGLIB$$b58bc1ae"'s signer information does not match signer information of other classes in the same package你把你的所有class清除掉,重新编译一遍
Exception in thread "main"
lz解决了告诉我一下
[email protected]谢谢了