亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

深入了解WebLogic的類裝載機制詳解

2019-11-18 11:11:02
字體:
來源:轉載
供稿:網友

假如大家對一般類的裝載器熟悉的話,就知道在java中類的裝載采用“代理機制”,即子裝載器假如需要裝載一個類文件,首先會將此任務提交給父裝載器,假如父裝載器找不到此類文件,才有子裝載器來裝載類文件,假如子裝載器也找不到,那么就會報告ClassNotFoundException異常。

1.Weblogic答應定制的類裝載器,同時也有一個默認的類裝載器。其默認的裝載器的結構分層如下:

 深入了解WebLogic的類裝載機制詳解(圖一)



當部署一個應用的時候,weblogic server會自動創建一個具有層次結構的類裝載器。在圖中,a.application Classloader負責裝載應用中的所有的EJB JAR文件;

b.Web Application Classloader負責裝載所有的Web application 中的WAR 文件(所有得jsp文件除外);

c.Jsp Classloader 負責裝載Web application 中的所有的jsp 文件;

這樣的分層結構有一個好處,就是在Jsp,Servlet中可以直接訪問EJB的接口。這種上層裝載EJB,下層裝載servlet等,最下面裝載jsp文件的結構,使得經常變動的jsp,servlet等可以被重新裝載而不會涉及到EJB層。

在這種默認的類裝載器結構下,有一點需要提出的是:

a. 我們的應用必須打包成一個EAR文件,才會答應我們應用中的jsp和servlet文件直接訪問ejb;假如將WAR與JAR文件分別打包。Weblogic server會為他們分別生成一個類裝載器,作為兄弟節點,這時假如需要在jsp或者servlet中使用ejb,就必須將EJB的Home接口與remote接口打包到WAR中才可以。后面這種情況,適合用在將EJB的客戶端和EJB部署在不同的JVM中;

b.web application classloader中,不會裝載jsp文件,jsp文件由web application classloader的子裝載器Jsp classloader負責裝載,因為jsp文件經常的變動,通過為jsp設立一個單獨的classloader可以避免對jsp的裝載影響到其他的java class或者ejb;

默認裝載器的優點:

a. 調用ejb的時候可以采用call-by-referrence的方式;

b. 答應web module獨立的裝載,不影響其它的web module;

通過在將整個應用打包成一個EAR文件,可以方便的不用再web module中包含EJB的home和remote接口,就可以方便的通過call-by-referrence來調用ejb;

2. 定制classloader

假如覺得默認的類裝載器不能滿足需要,weblogic server支持定制的類裝載器。在weblogic的文檔中指出,自定義的classloader多用于開發者使用,當應用發布之后,不推薦使用。自定義的類裝載器通過xml文件來描述。描述文件放在weblogic-application.xml中。Weblogic官方提供的DTD描述文件如下:

<classloader-strUCture>

<module-ref>

<module-uri>ejba.jar</module-uri>

</module-ref>

<module-ref>

<module-uri>webc.war</module-uri>

</module-ref>

<classloader-structure>

<module-ref>

<module-uri>weba.war</module-uri>

</module-ref>

</classloader-structure>

<classloader-structure>

<module-ref>

<module-uri>ejbc.jar</module-uri>

</module-ref>

<module-ref>

<module-uri>webb.war</module-uri>

</module-ref>

<classloader-structure>

<module-ref>

<module-uri>webd.war</module-uri>

</module-ref>

</classloader-structure>

<classloader-structure>

<module-ref>

<module-uri>ejbb.jar</module-uri>

</module-ref>

</classloader-structure>

</classloader-structure>

</classloader-structure>

通過我們給出的配置文件,我們自定義的classloader的層次結構如下圖:

 深入了解WebLogic的類裝載機制詳解(圖二)


在J2EE的規范中明確的指出,J2EE應用不應該依靠于任一個給定的類裝載器。所以,我們自定義的類裝載器,在開發過程中還是可以使用的,但一定不要應用于發布后的應用中。

自定義的類裝載器有如下得限制:

a.不能夠裝載servlet;

b.嵌套的深度最大為3,也就是說,最多只能夠嵌套三層;

c.自定義裝載器的module類型僅限于 Web和 EJB這兩種;

d.Jsp Classloader不受此自定義類裝載器的影響,它永遠都是web module的子類裝載器;

相同的類可能導致部署異常;

在自定義的類裝載器中,假如要使用EJB,就必須將EJB的home和remote接口打包到相應的web module中去;

3.Ejb的單獨加載

有時候我們可能需要單獨加載某個EJB,這個時候我們可以通過以下兩種方法來實現:

第一:將應用需要的jar文件放在APP-INF/lib中,或者將類文件放在APP-INF/classes中,這些類文件和JAR文件會被root classloader進行裝載,可以被多個應用共享;

第二:可以通過META-INF/MANIFEST.MF文件來指定需要的classes。通常的用法是在META-INF/MANIFEST.MF文件中增加Class-Path:一行。舉例如下:

Class-Path:/d:ejb/add.jar

這樣就會在當前的jar包中可以找到我們需要的add.jar文件。需要說明的是,在Class-Path:行的最后一定要有一個換行,否則會發生錯誤。還有,通過Class-Path只能指定本地的JAR文件。

假如能對應用服務器的類裝載原理有了較清楚地了解,會對我們的應用移植,在開發中避免不必要的類裝載的錯誤會有很大的幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人精品久久一区二区三区| 国产精品高潮粉嫩av| 亚洲欧美另类自拍| 色综合色综合久久综合频道88| 这里只有精品丝袜| 亚洲精品美女久久久| 国产这里只有精品| 亚洲最大成人网色| 韩国精品久久久999| 91国产精品电影| 亚洲黄色有码视频| 日韩成人网免费视频| 欧美高清视频一区二区| 国产精品老女人精品视频| 亚洲精品国产精品国产自| 欧美日韩国产精品| 亚洲第一区中文字幕| 亚洲字幕在线观看| 日韩精品免费综合视频在线播放| 欧美精品手机在线| 欧美电影第一页| 中文字幕无线精品亚洲乱码一区| 成人免费在线视频网站| 91精品国产高清自在线看超| 日韩高清不卡av| 久久久久久999| 亚洲第一区中文字幕| 成人福利视频在线观看| 在线日韩av观看| 国产成人精品免费视频| 最近免费中文字幕视频2019| 欧美在线亚洲在线| 成人福利在线视频| 久久视频在线直播| 国产一区二区三区在线| 91精品在线影院| 国产精品久久久久久av| 992tv成人免费影院| 欧美性videos高清精品| 美女视频久久黄| 91精品视频播放| 亚洲а∨天堂久久精品喷水| 97视频免费在线观看| 欧美精品激情在线观看| 日韩av色综合| 成人免费在线视频网站| 亚洲图片欧洲图片av| 精品中文视频在线| 91久久久久久久久久| 欧美在线一级va免费观看| 欧美电影免费观看高清完整| 日韩中文字幕国产精品| 精品精品国产国产自在线| 亚洲成人av在线播放| 中文字幕亚洲一区二区三区| 国产精品久久久久久影视| 久久精品国产精品| 国产成人精品综合| 亚洲男人天天操| 国产精品久久久久久亚洲影视| 亚洲少妇中文在线| 亚洲精品一区二区网址| 亚洲国产精品999| 色黄久久久久久| 亚洲欧美另类自拍| 91久久夜色精品国产网站| 久久精品美女视频网站| 欧美日韩在线视频首页| 国内精品国产三级国产在线专| 国产一区二区三区免费视频| 欧美性生交xxxxxdddd| 国产香蕉精品视频一区二区三区| 久久久亚洲精品视频| 日韩美女毛茸茸| 中文字幕在线视频日韩| 亚洲夜晚福利在线观看| 啪一啪鲁一鲁2019在线视频| 亚洲美女免费精品视频在线观看| 亚洲一区二区久久久| 久久精品一区中文字幕| 欧日韩在线观看| 亚洲欧美日韩中文视频| 久久中国妇女中文字幕| 亚洲精品国产福利| 久久影视电视剧凤归四时歌| 国产成人福利视频| 日韩经典中文字幕在线观看| 日韩av网站在线| 中文字幕亚洲综合久久| 亚洲人成电影在线| 亚洲欧美国产日韩中文字幕| 欧美视频在线免费| 国产一区二区黄| 亚洲欧洲高清在线| 日韩中文字幕网| 久久免费视频在线观看| 亚洲国产精品成人av| 在线播放国产一区中文字幕剧情欧美| 亚洲va国产va天堂va久久| 4444欧美成人kkkk| 成人观看高清在线观看免费| 亚洲一区av在线播放| 欧美成人精品在线播放| 精品久久久久久久久久ntr影视| 在线看日韩av| 亚洲精品www| 国内揄拍国内精品少妇国语| 亚洲天堂av图片| 欧美午夜精品久久久久久人妖| 国产成人精品免高潮费视频| 久久在线观看视频| 欧美成人h版在线观看| 国产视频久久久久久久| 91精品久久久久久久久久久久久久| 欧美激情综合色| 国产精品男人的天堂| 成人美女免费网站视频| 亚洲欧美在线一区| 国产日韩换脸av一区在线观看| 欧美黑人视频一区| 亚洲一区二区三区在线视频| 夜夜狂射影院欧美极品| 日韩国产高清视频在线| 久久激情视频免费观看| 欧美自拍视频在线| 日韩高清不卡av| 8050国产精品久久久久久| 成人黄色大片在线免费观看| 不卡av电影在线观看| 深夜福利一区二区| 亚洲人成电影在线| 欧美日本中文字幕| 成人黄在线观看| 色777狠狠综合秋免鲁丝| 亚洲色图日韩av| 亚洲性av网站| 最好看的2019的中文字幕视频| 国产综合视频在线观看| 国产精品无码专区在线观看| 成人黄色av播放免费| 国产精品啪视频| 欧美激情二区三区| 国产精品久久久久免费a∨| 欧美电影在线观看网站| 精品久久久久久久久久久久| 久久久久久久久久久网站| 91精品国产综合久久香蕉| 精品毛片网大全| 清纯唯美亚洲激情| 日韩美女在线看| 91tv亚洲精品香蕉国产一区7ujn| 国产精品第一第二| 性色av一区二区三区免费| 亚洲国产精品成人一区二区| 欧美成人激情视频| 一区二区三区四区视频| 午夜精品久久久久久久久久久久| 日韩在线一区二区三区免费视频| 91成品人片a无限观看| 亚洲国产日韩欧美在线99| 亚洲无限乱码一二三四麻| 亚洲精品suv精品一区二区| 亚洲电影av在线| 亚洲一区亚洲二区亚洲三区|