首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

为 WebSphere Application Server 开发企业 OSGi 应用程序(9)

为 WebSphere Application Server 开发企业 OSGi 应用程序(9)

开发工具用于构建企业 OSGi 应用程序的大部分开发行为和开发工具与 Java EE 工具类似,但有一些新的考虑。这些考虑主要围绕编译时类路径,以及 OSGi bundle、应用程序清单文件及可选的 Blueprint bean 定义文件的编写。Rational                Application Developer  开发 OSGi 应用程序工具,为 OSGi bundle 项目和应用程序项目引入了新的项目类型,并自动生成清单文件和基于表单的编辑器来修改它们。OSGi 模块化语义在项目构建路径中受到支持,以便只有在项目的 bundle 清单文件中显式导入和导出的包在项目之间共享。Rational Application Developer 的基于面的配置支持将 OSGi 项目配置为 OSGi Web 项目或 OSGi JPA 项目,并集成一些工具来编写 web.xml、persistence.xml 和 blueprint.xml。Rational Application Developer 的新 bundle Explorer 可用于可视化 OSGi 应用程序中的 bundle 之间的关系,如图 3 所示。OSGi 应用程序项目可以导出到 .eba 存档或从中导入,并可以从 Rational Application Developer 工作空间运行,该工作空间可以位于 Rational Application Developer 可选安装的 WebSphere Application Sever V7 中,也可以位于包含 OSGi 应用程序特性的远程 WebSphere Application Server V7 环境中。
图 3. Rational                    Application Developer bundle Explorer除了集成的 Rational Application Developer 工具外,还有几个开源工具可以帮助生成 OSGi bundle 清单文件。另外,Apache Aries 社区开发的 EBA Maven Plugin 也可以从作为一个构建的一部分的 Maven pom 配置生成一个 OSGi 应用程序清单文件。
操作细节目前为止我们已经讨论了如何开发、组装和部署 OSGi 应用程序。本小节简单介绍一个部署的结果,以及后续可以采取的一些管理操作。
WebSphere Application Server OSGi 应用程序特性包提供的一个有用的实用程序是安装在 install_dir/feature_packs/aries/bin/ 目录中的 osgiApplicationConsole 脚本。这是一个 wsadmin 客户机应用程序,旨在为指定应用程序服务器提供一个远程 OSGi 控制台。命令行参数如清单 14 所示。
清单 14. 使用 OSGi 应用程序控制台实用程序
1
2
3
4
5
6
7
8
9
10
11
-h The host name of the target machine.

-o The port number of the SOAP port of the target server

-u The user ID, if the wsadmin connection is secured.

-p The password, if the wsadmin connection is secured.

example:

install_dir/feature_packs/aries/bin/osgiApplicationConsole -h server1.acme.com -o 8880




在命令提示中,可以键入 help() 显示一个交互命令列表。如果您在部署和启动这个博客样例应用程序之后运行这个命令并在命令提示中键入 list(),您将看到目标服务器上的两个 OSGi 框架的条目。一个是 OSGi 框架,这个博客样例应用程序就安装在该框架中;另一个是服务器范围的共享框架。要了解每个框架的 bundle、服务和包的相关细节,需要首先连接到想要的框架:从命令提示符处键入 connect(1) 以连接到应用程序框架。要列示这个框架中安装的所有 bundle,并查看它们的 bundle 状态,键入 ss()。您应该能够看到类似清单 15 的结果。
清单 15. 交互式 OSGi 应用程序控制台
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
wsadmin>ss()

ID State bundle  

0 ACTIVE org.eclipse.osgi_3.5.2.R35x_v20100126

1 ACTIVE com.ibm.ws.eba.example.blog.app_1.0.0

2 ACTIVE com.ibm.ws.eba.example.blog.persistence_1.0.0

3 ACTIVE com.ibm.ws.eba.example.blog.web_1.0.0

4 ACTIVE com.ibm.ws.eba.example.blog.api_1.0.0

5 ACTIVE com.ibm.ws.eba.example.blog_1.0.0




WebSphere Application Server Information Center ,用于获取关于正在运行的应用程序的信息。这个控制台可以帮助您很轻松地以可视方式查看如何为分离的 OSGi 应用程序维护隔离,通过隔离,一个应用程序的内部 bundle 和包将对其他应用程序不可见。要隔离一个应用程序和另一个应用程序,您不必将它们部署在不同的服务器上。需要在应用程序之间共享的 bundle(例如,此前介绍的链接到 Application Assembly 的 Use-Bundle 内容)被安装到共享框架中。
最后,我们看看已部署应用程序中的 bundle 的管理更新。
应用程序安装后,可以导航到管理控制台的 Assets 视图,查看每个 bundle 的已安装版本。如果任何已配置 bundle 知识库中有一个或多个 bundle 的更新版本可用,且那些版本处于为 OSGi 应用程序清单文件中的 bundle 定义的版本范围中,那么您有机会以管理方式将那些 bundle 中的全部或一部分更新到想要的版本。为了便于演示,这个博客样例提供了它的持久性 bundle 的一个额外的 1.1.0 版。如果您在这个博客样例部署之后将这个博客持久性 bundle 的 1.1.0 版添加到 WebSphere Application Server 内部 bundle 知识库,则可以通过面板中的 Application Assets 视图进行导航,如图 4 所示。
图 4. bundle 的管理更新您现在可以选择这个持久性 bundle 的 1.1.0 版并选择 Preview 按钮来重新解算应用程序,并检查任何不一致。如果预览没有生成错误,那么您可以选择 Commit 按钮来更新应用程序并保存配置。
返回列表