为 OSGi 应用程序配置库

每个 OSGi 应用程序都可以访问一组提供的 API 及其自己的内部类。还可以将共享库配置为提供从共享库对额外包的访问。

关于此任务

每个 OSGi 应用程序在运行的 Liberty 服务器中都有其自己的一组 OSGi 捆绑软件。每个 OSGi 捆绑软件都指定它所需要的包以及它为供其他 OSGi 捆绑软件使用而提供的包。OSGi 应用程序中的捆绑软件可以访问同一 OSGi 应用程序中其他捆绑软件提供的所有包。此外,OSGi 应用程序中的 OSGi 捆绑软件可以访问 Liberty 服务器提供的 API 包。共享库还可以用于提供 API 包以供 OSGi 应用程序使用。

可以在多个 OSGi 应用程序间共享库。所有应用程序(包括 Java EE 应用程序)都可以在运行时使用共享库提供的相同类。

过程

  1. ${WLP_USER_DIR} 目录下的 servers/defaultServer 目录中创建 mylib/osgi 目录。 例如:wlp/usr/servers/defaultServer/mylib/osgi
  2. osgi-lib.jarcommons-lang.jar 文件复制到新文件夹中。
  3. 为应用程序配置共享库,以使该库装入。在 server.xml 文件或包含的文件中,通过添加下列代码来定义库:
    <library id="mylib">
        <fileset dir="${server.config.dir}/mylib/osgi" includes="*.jar" scanInterval="5s">
    </library>
    注: library 元素也可以接受具有以逗号分隔的 fileset 元素标识列表的 filesetRef 属性。
  4. 将该库作为 OSGi 库引用,以便使 OSGi 应用程序可以访问由该库提供的包以及共享该库的单个副本。在 server.xml 文件或包含的文件中,添加以下代码:
    <osgiLibrary libraryRef="myLib"/>
  5. 可选:配置包列表,以便可以从 OSGi 应用程序访问这些包。当使用 osgiLibrary 元素配置了共享库时,OSGi 应用程序可以访问该共享库中包含的包。还可以列出包,以便对 OSGi 应用程序可以访问哪些包提供更多的控制。包语法使用 OSGi Export-Package 头语法来定义每个包。要列出 server.xml 文件或包含的文件中的包,请添加以下代码:
    <osgiLibrary libraryRef="myLib">  
        <package>org.example.osgi.lib.pkg1; version=1.0</package>  
        <package>org.example.osgi.lib.pkg2; version=1.1</package>
    </osgiLibrary>
    注: 未使用任何包元素时,将对库进行扫描以查找该库提供的包。发现的每个包都将获得缺省版本 0.0.0。

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



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_admin_osgiappl
文件名:twlp_admin_osgiappl.html