提供所有 Java EE 應用程式的廣域程式庫

您可以提供可供任何 Java™ EE 應用程式使用的廣域程式庫。 透過將這些程式庫的 JAR 檔放在廣域程式庫目錄中,然後在各應用程式的類別載入器配置中指定使用廣域程式庫,即可這樣做。 不過,OSGi 應用程式之類的其他應用程式無法使用廣域程式庫。

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

關於這項作業

在利用 WLP_USER_DIR 環境變數指定的使用者目錄之下,下列位置可供您放置廣域程式庫:
  • ${shared.config.dir}/lib/global
  • ${server.config.dir}/lib/global
如果啟動應用程式時,這些位置有檔案存在,且這個應用程式沒有配置 <classloader> 元素,應用程式會使用這些程式庫。 如果類別載入器配置存在,除非明確參照廣域程式庫,否則,不會使用這些程式庫。
注意: 如果您使用廣域程式庫,也建議您為每個應用程式配置 <classloader> 元素。 Servlet 規格要求應用程式在其類別載入器母項鏈結中,共用廣域程式庫類別載入器。 這會破壞在其他情況下所可能具備的各應用程式之間的類別載入器區隔。 因此,應用程式更可能對 Liberty 中所載入的類別以及彼此的類別有長期的影響,而且類別空間一致性問題更可能在應用程式之間產生,特別是在執行中伺服器新增及移除特性時。 對於配置中指定了 <classloader> 元素的應用程式而言,這些考慮一律不適用,因為它們會維護這個區隔。

範例

在下列範例中,稱為 Scholar 的應用程式配置成會使用稱為 Alexandria 的共用程式庫,同時也使用廣域程式庫。

server.xml 檔或某個併入檔中,新增下列程式碼來啟用應用程式的廣域程式庫:
<application id="" name="Scholar" type="ear" location="scholar.ear">
  <classloader commonLibraryRef="Alexandria, global" />
</application>
廣域程式庫的設定也可以明確配置成含有特殊 ID global 的程式庫元素。 例如:
<library id="global">
  <fileset dir="/path/to/folder" includes="*.jar" />
</library>