程式庫可以在多個 Java™ EE 應用程式之間共用。 所有應用程式都可以在執行時期使用相同的類別,或者說,各應用程式可以使用它自己從相同位置載入的這些類別的個別副本。
Open Liberty 網站提供 Liberty 的類別載入器配置的最新說明文件。
關於這項作業
在下列範例中,稱為
Alexandria
的程式庫由兩個檔案組成:
- alexandria-scrolls.jar 和
- commons-lang.jar
稱為
Scholar
的應用程式和稱為
Student
的應用程式執行於稱為
Academy
的伺服器,兩者都必須存取這個程式庫。
程序
- 在
${WLP_USER_DIR}
目錄下的 servers/Academy 目錄中建立 mylib/Alexandria 目錄。
例如:wlp/usr/servers/Academy/mylib/Alexandria。
- 將 alexandria-scrolls.jar 和 commons-lang.jar 檔案複製到新資料夾。
- 配置應用程式的類別載入,以便載入
Alexandria
程式庫。
在
server.xml
檔或某個併入檔中,新增下列程式碼來定義程式庫:
<library id="Alexandria">
<fileset dir="${server.config.dir}/mylib/Alexandria" includes="*.jar" scanInterval="5s" />
</library>
附註: <library>
元素也可以採用 filesetRef
屬性,並以逗點區隔的 <fileset>
元素 ID 清單。
- 從應用程式參照程式庫,使這兩個應用程式共用程式庫的單一副本。
在
server.xml
檔或某個併入檔中,新增下列程式碼:
<application id="scholar" name="Scholar" type="ear" location="scholar.ear">
<classloader commonLibraryRef="Alexandria" />
</application>
<application id="student" name="Student" type="ear" location="student.ear">
<classloader commonLibraryRef="Alexandria" />
</application>
附註: <commonLibraryRef>
元素可以採用以逗點區隔的程式庫 ID 清單。
- 選用項目: 將另一個應用程式配置成從相同的 JAR 檔載入它自己的一組類別。
比方說,如果另一個稱為
Spy
的應用程式需要它自己的類別副本,可以使用磁碟上相同的實體檔案。 在
server.xml
檔或某個併入檔中,新增下列程式碼:
<application id="spy" name="Spy" type="war" location="spy.war">
<classloader privateLibraryRef="Alexandria" />
</application>
附註: <privateLibraryRef>
元素可以採用以逗點區隔的程式庫 ID 清單。