Weblogic10的ClassLoading 机制 概述

Weblogic10的ClassLoading 机制 概述

        今天我们来聊聊Weblogic的ClassLoading 机制。
        首先,我们来回顾一下Java ClassLoader机制, Java ClassLoader 顾名思义,就是从硬盘,网络等加载Class。JVM采用继承代理机制保护系统核心的Class不被篡改及出现ClassCastException异常。具体可参阅以前我写的关于JVM类加载的一篇文章。
       下图就是Weblogic类加载实例。 在Weblogic中,Application就是你部署的应用,可以是一个EAR包,可以是Web 应用的War包。当我们部署一个Application,Weblogic Server 自动创建一个继承关系的ClassLoader . 顶层是System ClassPath Loader。底层的Root ClassLoader 加载任何EJB jar包,child ClassLoader 加载每一个Web 应用的War包。也就是说EJB的Jar包是优与War加载的。这是因为在一般的应用,Web Application 调用EJB。所以JSP Servlet 可以调用父类加载器加载的EJB。

      下图是在一个标准的Application中ClassLoader的关系。该加载机制优势在于 WebApplication1 WebApplication2调用EJB时候可以通过reference ,大家都知道通过reference 调用EJB的效率是非常高的。



     对于这种常规的ClassLoader 关系,意味著当你要更改EJB1或者EJB2时,我们必须重新部署WebApplication1 WebApplication2。
 
     Weblogic 也给我们提供在weblogic-application.xml.自定义的ClassLoader。不过对于我们一般的应用是没有必要自定义ClassLoader。





你可能感兴趣的:(Weblogic10的ClassLoading 机制 概述)