weblogic的classloader装载策略及部署应用的目录结构

来源:互联网 发布:淘宝直通车技巧视频 编辑:程序博客网 时间:2024/05/23 01:12

本帖本来写于去年,现在拿过来充充场面,呵。。。

weblogic的classloader装载策略及部署应用的目录结构

1 目录结构

在weblogic上要发布一个web applicate必须有下面的目录结构:
mywebapp
  |____WEB-INF
          |___lib             //放这个web application所需要的jar包
          |___classes         //放class类
          |___web.xml         //对这个web application描述


发布一个application需要有下面的目录结构:
myapplication
   |___APP-INF         //放在这个目录下的lib和classes不能实例化webapp下的类
   |     |___lib      //放ejb和webapp公用的jar包      
   |     |___classes  //放ejb和webapp公用的类
   |___META-INF
   |     |__application.xml
   |___mywebapp
   |     |____WEB-INF
   |            |___lib            
   |            |___classes         //放class类
   |            |___web.xml
   |___ejb.jar      //ejb的jar包

==================================================================================

2 classloader
classloader是分层次的,它只能加载比它层次高的类及它自身的类,同层次的类及比它层次低的类都不能加载。在weblogic中的classloader有5个层次,从高到低排:

a.  jdk

b. jdk ext

c. system classpath

d. (APP-INF/lib and APP-INF/classes)

e. (WEB-INF/lib and WEB-INF/classes)

f. ejb.jar

注意:e 和 f 的classloader是同级的。

所以APP-INF/lib和APP-INF/classes下类不能实例化webapp下的类,这点尤其要注意,否则会报类找不到的错误。