为所有 Java EE 应用程序提供全局库

可以提供任何 Java™ EE 应用程序都可以使用的全局库。如果要这样做,请将这些库的 JAR 文件放入全局库目录中,然后指定在每个应用程序的类装入器配置中使用全局库。但是,其他应用程序(例如,OSGi 应用程序)无法使用全局库。

关于此任务

在使用环境变量 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 apiTypeVisibility="spec" commonLibraryRef="Alexandria, global" />
</application>
全局库的设置也可以显式地配置成具有特殊标识 global 的库元素。例如:
<library id="global">
  <fileset dir="/path/to/folder" includes="*.jar" />
</library>

用于指示主题类型的图标 任务主题

信息中心的条款和条件 | 反馈


时间戳记图标 最近一次更新时间: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_classloader_global_libs
文件名:twlp_classloader_global_libs.html