以替代版本來置換所提供的 API

如果應用程式所提供(或使用的程式庫所提供)的類別在 Liberty 中也有,依預設,會使用 Liberty 中的類別。如果要變更這個情況,讓應用程式使用這些類別的替代版本,您必須在 server.xml 檔或某個併入檔中配置應用程式。

關於這項作業

如果 Web 應用程式含有在伺服器執行時期環境中也存在的類別,您可能會想控制應用程式對於這些類別分別會使用哪個副本。 比方說,如果在應用程式和伺服器執行時期環境中都存在各類別的不同版本,您必須確定會使用包裝在應用程式中的版本。

依預設,所有 Java™ EE 應用程式都會使用 Liberty 執行時期環境中的類別。您可以利用類別載入器配置的 delegation 屬性來置換這個行為。 這個配置專用於特定應用程式,或用於可選給應用程式使用的共用程式庫。

範例

在下列範例中,稱為 Scholar 的應用程式需要使用它提供(或使用的程式庫所提供)的類別,而不是使用 Liberty 所提供之類別的副本。

  • 當類別是包裝在應用程式之中,請利用 server.xml 配置檔或它包含的某個檔案中的 classloader 元素,來置換預設的 parentFirst 委派行為:
    <application id="" name="Scholar" type="ear" location="scholar.ear">
      <classloader delegation="parentLast" />
    </application>
    這會告訴應用程式類別載入器,必須先在應用程式及其關聯程式庫中尋找類別,然後才查看 Liberty 類別。
  • 當類別包裝在共用程式庫之中,依照下列方式,新增 delegation 屬性到配置成會使用共用程式庫的 classloader 元素中:
    <application id="" name="Scholar" type="ear" location="scholar.ear">
      <classloader delegation="parentLast" commonLibraryRef="mySharedLib"/>
    </application>
    
    <library id="mySharedLib">
      <fileset dir="${server.config.dir}/myLib" includes="*.jar" />
    </library>

您也可以在應用程式中,使用專用程式庫的 privateLibraryRef 屬性。 請參閱 在多個 Java EE 應用程式之間共用程式庫


指示主題類型的圖示 作業主題



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_classloader_alt_api
檔名:twlp_classloader_alt_api.html