在多个 Java EE 应用程序之间共享库

可以在多个 Java™ EE 应用程序之间共享库。所有应用程序都可以在运行时使用相同的类,或者每个应用程序可以使用从同一个位置装入的那些类的单独副本。

关于此任务

在以下示例中,称为 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> 元素也可以接受具有以逗号分隔的 <fileset> 元素标识列表的 filesetRef 属性。
  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> 元素可以接受以逗号分隔的库标识列表。
  5. 可选: 将另一个应用程序配置成从相同的 JAR 文件装入其自己的类集。
    例如,如果另一个称为 Spy 的应用程序需要其自己的类副本,那么可以使用磁盘上的相同物理文件。在 server.xml 文件或随附的文件中,添加下列代码:
    <application id="spy" name="Spy" type="war" location="spy.war">
      <classloader privateLibraryRef="Alexandria" />
    </application>
    注: <privateLibraryRef> 元素可以接受以逗号分隔的库标识列表。

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

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


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