创建 OSGi 应用程序

对于简单的 HelloWorld OSGi 应用程序,定义服务的捆绑软件和使用服务的捆绑软件一起打包到 OSGi 应用程序中。

准备工作

此主题假设您已完成以下任务:

您可以按照本主题所述创建应用程序,此时工具将为您自动生成应用程序清单文件;或者 您也可以使用 Apache Ant创建应用程序。

有关此任务

OSGi 捆绑包以 Java™ 归档 (JAR) 文件的形式打包,文件扩展名为 .jar .jar。 单个OSGi应用程序被封装在扩展 .eba 名为 的企业捆绑包归档文件(EBA)中,正如企业应用程序被封装在扩展 .ear 名为 的企业归档文件(EAR)中一样。 在此示例应用程序中,捆绑软件直接打包在 EBA 文件中。 然而,EBA 文件不必包含捆绑软件;可以在运行时拉入捆绑软件。 对于部署到 WebSphere® Application Server 的OSGi应用程序,一个束可以位于EBA文件中,或位于 WebSphere Application Server 内部束存储库中,或位于外部束存储库中。 每个 EBA 文件都包含一个应用程序清单文件(称为 APPLICATION.MF),此文件包含定义应用程序的元数据。 .eba 文件列示应用程序使用的捆绑软件并说明每个捆绑软件所在的位置。

OSGi应用程序设计指南版本 8.5 为创建和打包软件包提供了图形化支持。 下面的样本过程使用此工具。 您也可以使用其他工具,并且这些步骤可以适应其他工具。

此样本过程创建名为 com.ibm.ws.eba.helloWorldApp 的简单 hello-world OSGi 应用程序,在该应用程序中,三个捆绑软件 com.ibm.ws.eba.helloWorld.apicom.ibm.ws.eba.helloWorld.servicecom.ibm.ws.eba.helloWorld.client 将一起打包到 .eba 文件中。

当你部署并启动此应用程序时,它会打印问候信息。 OSGi Service: Hello World! 到系统输出日志。

过程

要创建应用程序,请完成下列步骤:

  1. 创建 OSGi 应用程序项目。
    1. 单击 “文件” > “新建 ”> “OSGi 应用程序项目 ”。
      将显示“OSGi 应用程序项目”面板。
    2. 配置项目。
      • 对于项目名称,输入 com.ibm.ws.eba.helloWorldApp
      • 确保已选中使用缺省位置
      • 确保已取消选中将项目添加到工作集
    3. 点击下一步
    4. “包含的捆绑包 ”列表中,选择 com.ibm.ws.eba.helloWorld.api 1.0.0com.ibm.ws.eba.helloWorld.client1.0.0com.ibm.ws.eba.helloWorld.service1.0.0

      有关这些软件包的更多信息,请参阅创建服务软件包创建客户端软件包

    5. 单击 “完成”
  2. 可选: 在运行于 IBM® 的 Rational® Application Developer 服务器上部署并测试OSGi应用程序项目。

    若您使用的是 Rational Application Developer 第8版,可直接将OSGi应用程序部署至本地机器,无需事先将其导出为EBA文件。 通常应通过此方式测试应用程序。 如果正在使用其他工具,那么省略此步骤。

    1. 右键单击 com.ibm.ws.eba.helloWorldApp 项目,然后选择 “以...身份运行 ”> “在服务器上运行 ”。
      将显示“在服务器上运行”面板。 若您已在工作 Rational Application Developer 区中配置了 WebSphere Application Server ,可选择 "选择现有服务器 ",然后选定该服务器。 否则,通过完成剩余步骤来手动定义新服务器。
    2. 配置 “在服务器上运行 ”面板:
      1. 对于服务器类型,选择 IBM > WebSphere Application Server v8.0
      2. 对于服务器主机名,输入有效的 TCP/IP 主机名。 例如,输入计算机的 TCP/IP 主机名或输入 localhost
      3. 对于服务器名称,请输入您希望在. Rational Application Developer 中用于引用该服务器的名称。
      4. 对于服务器运行时环境,选择 WebSphere Application Server V8.0。 如果列表中未提供此选项,那么完成下列步骤:
        1. 单击添加
        2. 导航至您安装的目录 应用服务器根目录 WebSphere Application Server. 有关 app_server_root 目录的更多信息,请参阅 app_server_root
        3. 单击完成
      5. 单击下一步
      将显示“WebSphere Application Server 设置”面板。
    3. 配置 WebSphere Application Server 设置面板:
      1. 对于概要文件名称,选择要与 OSGi 应用程序配合使用的概要文件。
      2. 对于应用程序服务器名称,验证是否显示您的概要文件的应用程序服务器名称。 缺省情况下,概要文件的第一个应用程序服务器名为 server1
      3. 如果在应用程序服务器上启用了安全性,那么输入用户标识和密码。
      4. 单击下一步
      将显示已配置的 OSGi 应用程序项目的列表。
    4. 检查您的 OSGi 应用程序项目是否在已配置的项目的列表中。
    5. 单击 “完成”
      将自动启动服务器,发布并启动您的应用程序,并且会在控制台选项卡上显示以下输出:
      [4/15/10 14:07:33:295 GMT] 00000023 SystemOut O Client: Start...
      [4/15/10 14:07:33:581 GMT] 00000023 SystemOut O OSGi Service: Hello World!
      [4/15/10 14:07:33:581 GMT] 00000023 SystemOut O Client: End... 
  3. 将项目作为 EBA 文件导出。
    1. 右键单击项目名称,然后选择“导出 ”> “OSGi ”> “OSGi 应用程序 EBA”
    2. 输入导出文件的位置,然后为文件命名 com.ibm.ws.eba.helloWorldApp.eba
    3. 单击 “完成”

结果

您已了解了有关开发简单 OSGi 应用程序的详细指示信息。 在此应用中,客户端软件包使用服务软件包中定义的服务来生成消息。 OSGi Service: Hello World!您的应用程序使用OSGi服务注册表,在定义包和客户端包之间共享hello服务。 与服务注册表的所有交互都通过“蓝图”进行处理。

下一步做什么?

您现在已准备好在外部部署并启动 Rational Application Developer 您的OSGi应用程序,只需完成以下步骤:
  1. 将 OSGi 应用程序部署为业务级应用程序。
  2. 启动业务级应用程序。
  3. 检查系统输出日志中的欢迎信息 OSGi Service: Hello World!.
您可以在 WebSphere Application Server 中使用管理控制台或wsadmin命令来部署和启动OSGi应用程序。 有关如何为任何OSGi应用程序执行此操作的信息,请参阅 《启动您的业务级应用程序》 当您检查系统输出日志时,您应该会看到以下消息:
[4/15/10 14:07:33:295 GMT] 00000023 SystemOut O Client: Start...
[4/15/10 14:07:33:581 GMT] 00000023 SystemOut O OSGi Service: Hello World!
[4/15/10 14:07:33:581 GMT] 00000023 SystemOut O Client: End...