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下的类,这点尤其要注意,否则会报类找不到的错误。