将 J2EE 项目迁移到 IBM Lotus Expeditor V6.1
menghe@cn.ibm.comIBM Lotus Expeditor 这种 IBM 产品支持用熟悉的编程模型将 J2EE 应用程序迁移到客户机上。IBM Lotus Expeditor Toolkit 使开发人员不需要为了在 Lotus Expeditor 运行时上运行而重写 J2EE 项目。在本文中,将讲解如何迁移 J2EE 项目。
要想从本文获得最大的收获,您应该熟悉 Java™ 和 J2EE 以及使用 Eclipse 3.x 技术进行插件开发的方法。请记住,J2EE 项目不是插件项目,但 Lotus Expeditor 项目是插件项目。Lotus Expeditor 项目包含插件项目特有的清单文件和 plugin.xml 文件,所以必须了解应该如何处理这些文件。
本文讨论的主题包括:
[*]如何将现有的 J2EE Enterprise JavaBean(EJB)项目迁移到 Lotus Expeditor
[*]Lotus Expeditor 不支持哪些 J2EE 特性
[*]如何将迁移后的项目部署在 Lotus Expeditor 运行时上
在开始执行本文中的步骤之前,必须安装 IBM Rational Application Developer V7.0、Lotus Expeditor Toolkit V6.1 和 Lotus Expeditor Client V6.1。可以从 developerWorks 下载 Rational Application Developer for WebSphere Software 的免费试用版。
将现有的 J2EE EJB 项目迁移到 Lotus Expeditor
开发 J2EE 应用程序超出了本文的范围。为了简化开发过程,我们导入一个现有的 J2EE 示例项目并对它进行迁移。在开始学习之前,一定要下载本文 下载 一节中提供的示例代码(sampleJ2EEProject.zip)。
首先将示例 J2EE 项目导入 Rational Application Developer:
[*]在 Rational Application Developer 中,选择 Window - Open Perspective - Other - J2EE 切换到 J2EE 透视图。
[*]选择 File - Import 导入 sampleJ2EEProject.zip。
[*]在 Import 向导中,选择 “Existing projects into workspace”,然后单击 Next。
[*]在图 1 所示的 Import Projects 向导中,选择 Select archive file 选项,浏览到下载的 ZIP 文件(sampleJ2EEProject.zip),然后单击 Finish。
图 1. Import Projects 向导
[*]选择 File - New - Project 打开 New Project 向导。
[*]在 New Project 对话框中,展开 Client Services。这时出现几个向导,可以用来创建不同类型的 Client Services 项目。选择 “Convert Project to Client Services Project” 选项,然后单击 Next,见图 2。
图 2. New Project 向导
[*]图 3 所示的 Convert Existing Project 向导包含可转换的非 Client Services 项目的列表。注意,在将 J2EE 项目转换为 Client Services 之后,就无法逆转这个步骤,即无法转换回原来的 J2EE 项目状态。Lotus Expeditor Toolkit 提供一个 “Copy project before conversion” 选项,它会为现有的 J2EE 项目生成一个新拷贝,并将新拷贝转换为 Client Services。选择这个选项,如果需要的话,还可以指定新项目拷贝的名称。每次只能选择一个项目进行转换。单击 Next。
图 3. Convert Existing Project 向导
[*]在图 4 所示的 Target Definition 面板中,可以看到附加服务的列表,例如 Java Message Service(JMS)API、Managed Settings 和 MQ Everyplace。保持这些服务的默认设置,因为我们不使用这些附加服务。单击 Finish 将选择的 EJB 项目转换为 Client Services 项目。
图 4. Convert Existing Project:Target Definition 面板
[*]在单击 Finish 之后,向导执行转换前测试,并根据在 Lotus Expeditor 运行时上运行时可能需要修改现有 EJB 的哪些元素,显示相应的错误和警告。如果找到了任何错误或警告情况,就显示一个对话框,询问是应该继续进行转换,还是取消转换。单击 OK 继续转换,见图 5。
图 5. Convert Existing Project:警告
转换为 Client Services 的 EJB 项目称为 Client Services 嵌入式事务容器(embedded transaction container,ETC)项目。
按照相同步骤将示例 Web 项目 BankWeb 转换为 Client Services 项目。转换为 Client Services 的 Web 项目称为 Client Services Web 项目。
回页首
开发 Web 项目逻辑
下面是 Client Services Web 项目特有的一些任务;在从 J2EE 项目迁移到 Client Services Web 项目时需要执行这些步骤:
[*]提供必需的库。jclDesktop 运行时没有提供 java.rmi 包,所以对 PortableRemoteObject.narrow() 的引用被认为是一个错误。ETC 不允许访问其他服务器上的 EJB,所以可以用简单的 JNDI 查找替代 PortableRemoteObject.narrow()。
[*]提供一个快捷菜单,用来在 Lotus Expeditor 运行时中启动 Web 应用程序。在 BankWeb 项目的 plugin.xml 中添加一个扩展点(见清单 3),以便用快捷菜单在 Lotus Expeditor 运行时中启动它。
清单 3. 在项目的 plugin.xml 中添加扩展点
<extension id="kw4qri0g1j4t" point="com.ibm.eswe.workbench.WctWebApplication"> <WEBApplication DisplayName="XYZ Banking"> <WebApplicationUrl local="true" secured="false" url="/BankWeb/Banking.html"> </WebApplicationUrl> <BrowserConfiguration showAddressbar="true" showToolbar="false"> </BrowserConfiguration> </WEBApplication> </extension>
回页首
把迁移后的项目部署到 Client Services Lotus Expeditor 运行时平台上
Client Services 应用程序在 Lotus Expeditor 运行时上运行。Lotus Expeditor Toolkit 会自动处理与 bundle 相关的细节;因此,对于针对 Lotus Expeditor 运行时或依赖于其他 OSGi 服务的项目,建议通过 Client Services Project Creation 向导来开发。Lotus Expeditor 运行时不支持通过 EAR 文件部署企业应用程序。应用程序是直接部署到运行时中的。
既然已经将 J2EE 项目迁移到了 Client Services,现在就可以把迁移后的项目部署到 Lotus Expeditor 运行时。按照以下步骤部署迁移后的项目:
[*]在 Project Explorer 中,右击 BankWeb 项目,然后选择 Run - Run on Server。
[*]在图 8 所示的 Run On Server 对话框中,执行以下操作:
[*]选择 “Manually define a new server” 选项。
[*]选择 Client Services v6.1。
[*]单击 Next。
[*]保持 Client Services Server 的默认设置并单击 Next。
[*]将 BankEJB 项目添加到配置的项目列表中。
[*]单击 Finish 启动 Client Services Lotus Expeditor 运行时。
图 8. 定义服务器
在本文 下载 一节中可以找到迁移后的项目(migratedSampleJ2EEProject.zip)。
回页首
结束语
借助 Lotus Expeditor,可以使用标准 API 和服务将应用程序的关键组件从服务器迁移到桌面、笔记本计算机、tablet 和手持客户机。将应用程序组件迁移到客户机上运行,会对业务产生重大影响。应用程序在客户机本地执行业务操作,所以会大大改进应用程序的响应时间。另外,会减少客户机和服务器之间的网络流量,并减少服务器的负载。而且,即使在无法连接网络的地方,移动用户仍然可以有效地使用客户机上的应用程序。
本文讲解了如何将 J2EE 项目迁移到 Client Services 项目。我们把一个 EJB 项目和一个动态 Web 项目转换成了 Client Services。将 J2EE 应用程序迁移到 Lotus Expeditor,然后就可以在任何时间任何地点访问应用程序 —— 无论有没有网络连接。
页:
[1]