对于简单的 HelloWorld OSGi 应用程序,定义服务的捆绑软件和使用服务的捆绑软件一起打包到 OSGi 应用程序中。
准备工作
此主题假设您已完成以下任务:
- 创建服务束
com.ibm.ws.eba.helloWorld.service。
- 创建客户机捆绑软件
com.ibm.ws.eba.helloWorld.client。
您可以按本主题中所述创建应用程序,在此情况下,将通过工具为您创建应用程序清单文件,或者您可以 使用 Apache Ant创建应用程序。
有关此任务
OSGi 捆绑软件打包为具有 .jar 扩展名的 Java™ 归档 (JAR) 文件。 单个 OSGi 应用程序打包在具有 .eba 扩展名的企业捆绑软件归档 (EBA) 文件中,就像企业应用程序打包在具有 .ear 扩展名的企业归档 (EAR) 文件中一样。 在此示例应用程序中,捆绑软件直接打包在 EBA 文件中。 然而,EBA 文件不必包含捆绑软件;可以在运行时拉入捆绑软件。 对于部署到 WebSphere® Application Server的 OSGi 应用程序,捆绑软件可以位于 EBA 文件中, WebSphere Application Server 内部捆绑软件存储库中,也可以位于外部捆绑软件存储库中。 每个 EBA 文件都包含一个应用程序清单文件(称为 APPLICATION.MF),此文件包含定义应用程序的元数据。 .eba 文件列示应用程序使用的捆绑软件并说明每个捆绑软件所在的位置。
OSGi 应用程序设计准则 V 8.5 提供了用于创建和打包捆绑软件的图形支持。 下面的样本过程使用此工具。 您也可以使用其他工具,并且这些步骤可以适应其他工具。
此样本过程创建名为 com.ibm.ws.eba.helloWorldApp 的简单 hello-world OSGi 应用程序,在该应用程序中,三个捆绑软件 com.ibm.ws.eba.helloWorld.api、com.ibm.ws.eba.helloWorld.service 和 com.ibm.ws.eba.helloWorld.client 将一起打包到 .eba 文件中。
当您部署并启动此应用程序时,它将打印问候消息 OSGi Service: Hello World! 到系统输出日志。
过程
要创建应用程序,请完成下列步骤:
- 创建 OSGi 应用程序项目。
- 单击 。
将显示“OSGi 应用程序项目”面板。
- 配置项目。
- 对于项目名称,输入 com.ibm.ws.eba.helloWorldApp。
- 确保已选中使用缺省位置。
- 确保已取消选中将项目添加到工作集。
- 单击 下一步。
- 在 包含的捆绑软件 列表中,选择
com.ibm.ws.eba.helloWorld.api 1.0.0, com.ibm.ws.eba.helloWorld.client1.0.0 和 com.ibm.ws.eba.helloWorld.service1.0.0。
- 单击 完成。
- 可选: 在 IBM® Rational® Application Developer中运行的服务器上部署和测试 OSGi 应用程序项目。
如果您正在使用 Rational Application Developer V 8 ,那么可以部署到本地机器,而不必首先将 OSGi 应用程序导出为 EBA 文件。 通常应通过此方式测试应用程序。 如果正在使用其他工具,那么省略此步骤。
- 右键单击
com.ibm.ws.eba.helloWorldApp 项目,然后选择 。将显示“在服务器上运行”面板。 如果已在 Rational Application Developer 工作空间中配置 WebSphere Application Server ,那么可以选择 选择现有服务器,然后选择该服务器。 否则,通过完成剩余步骤来手动定义新服务器。
- 配置 在服务器上运行 面板:
- 对于服务器类型,选择 。
- 对于服务器主机名,输入有效的 TCP/IP 主机名。 例如,输入计算机的 TCP/IP 主机名或输入 localhost。
- 对于服务器名称,输入要用来引用 Rational Application Developer中的服务器的名称。
- 对于服务器运行时环境,选择 WebSphere Application
Server V8.0。 如果列表中未提供此选项,那么完成下列步骤:
- 单击添加。
- 浏览至 WebSphere Application Server 安装的 app_server_root 目录. 有关 app_server_root 目录的更多信息,请参阅 。
- 单击完成。
- 单击下一步。
将显示“WebSphere Application Server 设置”面板。
- 配置 WebSphere Application Server 设置 面板:
- 对于概要文件名称,选择要与 OSGi 应用程序配合使用的概要文件。
- 对于应用程序服务器名称,验证是否显示您的概要文件的应用程序服务器名称。 缺省情况下,概要文件的第一个应用程序服务器名为 server1。
- 如果在应用程序服务器上启用了安全性,那么输入用户标识和密码。
- 单击下一步。
将显示已配置的 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...
- 将项目作为 EBA 文件导出。
- 右键单击项目名称,然后选择 。
- 输入导出文件的位置,然后将该文件命名为 com.ibm.ws.eba.helloWorldApp.eba。
- 单击 完成。
结果
您已了解了有关开发简单 OSGi 应用程序的详细指示信息。 在此应用程序中,这是一个客户机捆绑软件,它使用服务捆绑软件中定义的服务来生成消息 OSGi Service: Hello World!。 应用程序使用 OSGi 服务注册表在定义捆绑软件和客户机捆绑软件之间共享 hello 服务。 与服务注册表的所有交互都通过“蓝图”进行处理。
下一步做什么?
现在,您已准备好通过完成以下步骤在
Rational Application Developer外部部署和启动 OSGi 应用程序:
- 将 OSGi 应用程序部署为业务级应用程序。
- 启动业务级应用程序。
- 检查系统输出日志以获取欢迎消息 OSGi Service: Hello World!.
您可以使用管理控制台或 wsadmin 命令在 WebSphere Application Server中部署和启动 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...