1、类加载器介绍
Weblogic的ClassLoader有如下几个层次,按照从高到低顺序排列:
1. JDK Bootstrap Classloader
2. JDK ext Class Loader
3. Weblogic System Class Loader
4. Domain Class Loader(Child of System Class Loader)
5. App Class Loader (负责装载应用中的所有的EJB JAR文件)
6. Web Class Loader (负责装载所有的Web application 中的WAR文件(所有得jsp文件除外)
7. JSP Class Loader (负责装载Web application 中的所有的jsp文件)
类加载器包含父装载器和子装载器,bootstrap根加载器就是JDK本身,将JDK内部类包含java.*包中的类加载到JVM,例如Java.lang.String类。
ext扩展类加载器是bootstrap的子加载器,加载JAVA_HOME/jre/lib/ext目录下的类文件。这样扩展类就比较方便不需要象classpath里面添加信息
system class loader是ext的子加载器,从classpath中加载类。weblogic system class loader 是 system class loader的子加载器
2、装载类
子加载器装载类时,会检查类是否被加载,如果没有被加载,子类会请求父类加载,如果父类找不到,子类才会加载,如果一个类既在子类又在父类,会先加载父类。weblogic中可以配置优先从自己的类中查找类,如果找不到在查找父类,这样就运行web应用使用第三方类库,注意这些类也会被weblogic应用服务器