您的位置:首页 > 移动开发

weblogic部署一个web application或application的目录结构

2008-10-18 00:53 459 查看
下面是在在weblogic部署一个web application或application的目录结构,并对目录应该对应的文件做了简单的说明,希望对大家有点帮助。

在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包

另外要注意的地方是APP-INF/lib和APP-INF/classes下类不能实例化webapp下的类,这点要注意,否则会报类找不到的错误。
这点可以从classloader的类装载机制来解释。application的classloader只装载app-inf层次以及以上层次的类,webapp只装载
WEB-INF下的类以及以上层次的类,所以application的类找不到webapp下的类而webapp的类能找到application下的类。
ejb和webapp下的类是相互不可见的,这点也要注意。
==================================================================================

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下的类,这点尤其要注意,否则会报类找不到的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息