2012-04-03 62 views
5

在Websphere中,可以創建一個「共享庫」並與應用程序關聯。我想知道,根據類路徑中的位置,共享庫的位置被添加了什麼?這意味着,我想知道,在資源重複的情況下,要裝載更高的「優先級」,共享庫或EAR/WAR本身。Websphere共享庫「優先」?

例如,假設在我的申請,我有一個叫做資源appConfig.xml,和我創建的應用程序服務器的本地目錄,使他人appConfig.xml在該目錄中。如果我試圖在我的應用程序中加載資源(例如打開輸入流),哪個文件將被加載?

...我已經尋找了一段時間,可以找到無處提到這一點。雖然我可以通過嘗試自己嘗試,但我想知道官方預期的行爲,如果有的話。

非常感謝

回答

4

排序之間的類加載器使用所謂的「類加載器模式」,其是「親本第一」(和應用程序類/資源最後一個)或「親本最後」(與應用程序類/資源第一)。單個應用程序的類加載器,類路徑排序將是:

  1. 模塊類路徑
  2. 依賴性類路徑(類路徑在MANIFEST.MF)
  3. 共享庫類路徑

沒有配置選項來更改順序。我不認爲這種排序在文檔中是明確的,但我也認爲這是不太可能改變的。無論如何,我不會建議依靠它。我建議確保您在單個類加載器中使用唯一的資源/類名稱。

+2

此外,當你有疑惑,想知道使用圖書館,你可以使用「的WebSphere Web控制檯 - >疑難解答 - >類裝入器查看器」中是如何WAS管理控制檯視圖。 – MrJames 2012-04-04 17:32:41

+1

是的,類加載器查看器可以用於確定服務器如何組裝事物。這並不一定解釋訂購的理由。 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.soafep.multiplatform.doc/info/ae/ae/ucws_rsharedlib_inst.html: – 2012-04-04 22:44:05

+0

其實我之前已經讀這在結尾處有一個關於「爲此共享庫使用隔離類加載器」的特殊部分,在本節中,提到了您給出的順序。我認爲這是一個暗示,對於普通的共享庫,它沒有爲共享庫使用分離的類加載器。有人可以驗證我的理解是否正確? (如果沒有,隔離類加載器和正常共享庫之間有什麼區別?) – 2012-04-05 03:15:13