在多個 Java EE 應用程式之間共用程式庫

程式庫可以在多個 Java™ EE 應用程式之間共用。 所有應用程式都可以在執行時期使用相同的類別,或者說,各應用程式可以使用它自己從相同位置載入的這些類別的個別副本。

Open Liberty Open Liberty 網站提供 Liberty 的類別載入器配置的最新說明文件。

關於這項作業

在下列範例中,稱為 Alexandria 的程式庫由兩個檔案組成:
  • alexandria-scrolls.jar
  • commons-lang.jar
稱為 Scholar 的應用程式和稱為 Student 的應用程式執行於稱為 Academy 的伺服器,兩者都必須存取這個程式庫。

程序

  1. ${WLP_USER_DIR} 目錄下的 servers/Academy 目錄中建立 mylib/Alexandria 目錄。

    例如:wlp/usr/servers/Academy/mylib/Alexandria

  2. alexandria-scrolls.jarcommons-lang.jar 檔案複製到新資料夾。
  3. 配置應用程式的類別載入,以便載入 Alexandria 程式庫。
    server.xml 檔或某個併入檔中,新增下列程式碼來定義程式庫:
    <library id="Alexandria">
      <fileset dir="${server.config.dir}/mylib/Alexandria" includes="*.jar" scanInterval="5s" />
    </library>
    附註: <library> 元素也可以採用 filesetRef 屬性,並以逗點區隔的 <fileset> 元素 ID 清單。
  4. 從應用程式參照程式庫,使這兩個應用程式共用程式庫的單一副本。
    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 清單。
  5. 選用項目: 將另一個應用程式配置成從相同的 JAR 檔載入它自己的一組類別。
    比方說,如果另一個稱為 Spy 的應用程式需要它自己的類別副本,可以使用磁碟上相同的實體檔案。 在 server.xml 檔或某個併入檔中,新增下列程式碼:
    <application id="spy" name="Spy" type="war" location="spy.war">
      <classloader privateLibraryRef="Alexandria" />
    </application>
    附註: <privateLibraryRef> 元素可以採用以逗點區隔的程式庫 ID 清單。