提供所有 Java EE 應用程式的廣域程式庫
您可以提供任何 Java™ EE 應用程式都可以使用的廣域程式庫。您透過將這些程式庫的 JAR 檔放在廣域程式庫目錄中,然後在各應用程式的類別載入器配置中指定使用廣域程式庫,來執行這個動作。 不過,OSGi 應用程式之類的其他應用程式無法使用廣域程式庫。
關於這項作業
在利用 WLP_USER_DIR 環境變數指定的使用者目錄之下,下列位置可供您放置廣域程式庫:
- ${shared.config.dir}/lib/global
- ${server.config.dir}/lib/global
小心: 如果您使用廣域程式庫,也建議您每個應用程式各配置一個 <classloader> 元素。
Servlet 規格要求應用程式在其類別載入器母項鏈結中,共用廣域程式庫類別載入器。
這會破壞在其他情況下所可能具備的各應用程式之間的類別載入器區隔。
因此,應用程式更有可能在 Liberty 所載入的類別上具備長期持續的作用,各應用程式之間也會有這個作用,應用程式之間很可能會出現類別空間一致性的問題,當在執行中的伺服器新增和移除特性時,尤其如此。
對於配置中指定了 <classloader> 元素的應用程式而言,這些考慮一律不適用,因為它們會維護這個區隔。
範例
在下列範例中,稱為 Scholar 的應用程式配置成會使用稱為 Alexandria 的共用程式庫,同時也使用廣域程式庫。
在 server.xml 檔或某個併入檔中,新增下列程式碼來啟用應用程式的廣域程式庫:
<application id="" name="Scholar" type="ear" location="scholar.ear">
<classloader apiTypeVisibility="spec" commonLibraryRef="Alexandria, global" />
</application>
廣域程式庫的設定也可以明確配置成含有特殊 ID global 的程式庫元素。
例如:
<library id="global">
<fileset dir="/path/to/folder" includes="*.jar" />
</library>