352262 发表于 2017-2-18 09:26:02

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

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

发布一个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下的类是相互不可见的,这点也要注意。

application.xml部署说明设置:
<?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">   
<application id="Application_ID">   
    <display-name>TestEar</display-name>   
    <module id="WebModule_1289041299062">   
      <web>   
            <web-uri>TestEarWeb.war</web-uri>   
            <context-root>TestEarWeb</context-root>   
      </web>   
    </module>
    <module>
      <ejb>ejb.jar</ejb>
    </module>   
</application>
页: [1]
查看完整版本: 在weblogic部署一个web application或application的目录结构