日期:2014-05-20  浏览次数:20788 次

关于jdk1.5和jdk1.6中反射的异同
本帖最后由 hulu2moyu 于 2013-05-02 23:09:32 编辑
同一个工程,在jdk1.5上可以跑起来,换到jdk1.6就不行了,在jdk1.6上的异常如下:
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:597)
at org.logicalcobwebs.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:373)
at org.logicalcobwebs.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:193)
... 120 more
Caused by: java.lang.SecurityException: Prohibited package name: java.sql
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.lang.ClassLoader.defineClass(ClassLoader.java:401)
... 126 more
求大神解惑,我在jdk1.5上跑,工程运行的好好的。
jdk1.5 jdk1.6 反射

------解决方案--------------------
cglib创建代理类的时候package名设成java.sql被禁止了吧
------解决方案--------------------
并不一定所有高版本的jdk都能兼容低版本的jdk。实际应用过程中,都是用什么jdk开发的,就要在相应的jdk下配置应用程序的。
------解决方案--------------------
java安全机制中对于恶意代码所采取的防护导致的
------解决方案--------------------
你自定义了  java.sql 的包名了吗
------解决方案--------------------
请参考下这篇博文: http://blog.csdn.net/rommal7090/article/details/4046870