您好bang老师,由于项目需要,我需要自定义一个classloader,去加载几个特殊的class,之前对classloader的了解并不深入,我在网上查了很多资料,自己写了一个Mycalssloader(其实就是复制过来的),然后做测试,
类似于这样的class
public class Test {
public void aaa(){
}
}
load这样简档的class都没问题,但是一旦要load一些引用许多第三方组件的,包括读取数据库的class就会报错,但是这些class用java的反射也没问题,不知自定义的classloader还缺少了那些东西,请您指点!
以下是些报错信息:
root cause
java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
root cause
java.lang.NoClassDefFoundError: org/apache/cayenne/query/Query
java.lang.Class.getDeclaredMethods0(Native Method)
java.lang.Class.privateGetDeclaredMethods(Unknown Source)
java.lang.Class.privateGetPublicMethods(Unknown Source)
java.lang.Class.getMethods(Unknown Source)