Weblogic10的ClassLoading 機(jī)制 概述
今天我們來聊聊Weblogic的ClassLoading 機(jī)制。
首先,我們來回顧一下Java ClassLoader機(jī)制, Java ClassLoader 顧名思義,就是從硬盤,網(wǎng)絡(luò)等加載Class。JVM采用繼承代理機(jī)制保護(hù)系統(tǒng)核心的Class不被篡改及出現(xiàn)ClassCastException異常。具體可參閱以前我寫的關(guān)于JVM類加載的一篇文章。
下圖就是Weblogic類加載實例。 在Weblogic中,Application就是你部署的應(yīng)用,可以是一個EAR包,可以是Web 應(yīng)用的War包。當(dāng)我們部署一個Application,Weblogic Server 自動創(chuàng)建一個繼承關(guān)系的ClassLoader . 頂層是System ClassPath Loader。底層的Root ClassLoader 加載任何EJB jar包,child ClassLoader 加載每一個Web 應(yīng)用的War包。也就是說EJB的Jar包是優(yōu)與War加載的。這是因為在一般的應(yīng)用,Web Application 調(diào)用EJB。所以JSP Servlet 可以調(diào)用父類加載器加載的EJB。
下圖是在一個標(biāo)準(zhǔn)的Application中ClassLoader的關(guān)系。該加載機(jī)制優(yōu)勢在于 WebApplication1 WebApplication2調(diào)用EJB時候可以通過reference ,大家都知道通過reference 調(diào)用EJB的效率是非常高的。
對于這種常規(guī)的ClassLoader 關(guān)系,意味著當(dāng)你要更改EJB1或者EJB2時,我們必須重新部署WebApplication1 WebApplication2。
Weblogic 也給我們提供在weblogic-application.xml.自定義的ClassLoader。不過對于我們一般的應(yīng)用是沒有必要自定義ClassLoader。
首先,我們來回顧一下Java ClassLoader機(jī)制, Java ClassLoader 顧名思義,就是從硬盤,網(wǎng)絡(luò)等加載Class。JVM采用繼承代理機(jī)制保護(hù)系統(tǒng)核心的Class不被篡改及出現(xiàn)ClassCastException異常。具體可參閱以前我寫的關(guān)于JVM類加載的一篇文章。
下圖就是Weblogic類加載實例。 在Weblogic中,Application就是你部署的應(yīng)用,可以是一個EAR包,可以是Web 應(yīng)用的War包。當(dāng)我們部署一個Application,Weblogic Server 自動創(chuàng)建一個繼承關(guān)系的ClassLoader . 頂層是System ClassPath Loader。底層的Root ClassLoader 加載任何EJB jar包,child ClassLoader 加載每一個Web 應(yīng)用的War包。也就是說EJB的Jar包是優(yōu)與War加載的。這是因為在一般的應(yīng)用,Web Application 調(diào)用EJB。所以JSP Servlet 可以調(diào)用父類加載器加載的EJB。

下圖是在一個標(biāo)準(zhǔn)的Application中ClassLoader的關(guān)系。該加載機(jī)制優(yōu)勢在于 WebApplication1 WebApplication2調(diào)用EJB時候可以通過reference ,大家都知道通過reference 調(diào)用EJB的效率是非常高的。

對于這種常規(guī)的ClassLoader 關(guān)系,意味著當(dāng)你要更改EJB1或者EJB2時,我們必須重新部署WebApplication1 WebApplication2。
Weblogic 也給我們提供在weblogic-application.xml.自定義的ClassLoader。不過對于我們一般的應(yīng)用是沒有必要自定義ClassLoader。
posted on 2009-04-27 22:46 advincenting 閱讀(1516) 評論(1) 編輯 收藏 所屬分類: 服務(wù)器 比如:WebLogic(Develop+Deploy)