您是否曾经想知道如何将应用程序的影响范围扩展到多个客户机设备?尝试用新的 IBM Lotus Expeditor V6.1 框架为同一个应用程序创建多个视图,使得智能手机、PDA 和移动设备能够与软件系统进行无缝交互。Lotus Expeditor 框架支持大量的开放标准技术,例如 Web 服务、消息传递和企业服务总线(enterprise service bus,ESB),使您能够遵循面向服务架构(Service-Oriented Architecture,SOA)来组件化并设计服务。本文讨论了如何构建既可以在传统计算机上运行又可以在移动设备上运行的 Rich Client Platform (RCP) 应用程序。按照 MVC 架构,我们为同一个模型创建了多个视图,并且根据所调用的客户机类型来显示正确的视图。
虽然本文实际上是一篇介绍性文章,但假定您熟悉 Java 编程,并且至少基本了解其中一种 Java IDE,如 Eclipse 或 IBM Rational Application Developer。
IBM Lotus Expeditor 是 IBM WebSphere Everyplace Deployment 的新名称。它是一个全面的运行时和支持环境,在这个环境中可以开发、部署并执行客户端应用程序,从而将面向服务架构扩展到现有网络范围之外。使用 Lotus Expeditor,可以为用户提供高性能、安全、健壮、多功能的用户界面应用程序,这些应用程序甚至可以在有限的网络连接上运行。这样可以动态地改善用户生产力,同时减少网络通信量。可以将 Lotus Expeditor 拆分为服务器组件和客户机组件。
服务器组件是完全支持客户机的。Lotus Expeditor 服务器所提供的服务包括:
- Database Synchronization Server
- MQ Everyplace Server
- Device Management Server
在 Lotus Expeditor 客户机上,运行时环境包括:
- Web 容器(用于执行 JSP 1.2 和 2.0 以及 Servlets 2.3 和 2.4)
- 嵌入式事务容器(它是限量版的 J2EE Enterprise Java Bean 容器)
- 富客户机 UI
- portlet 容器(Lotus Expeditor V6.1 中的新特性,用于远程部署 JSR168 portlet)
- 本地 Web 服务客户机和服务器性能
- 有保证的轻量级消息传递 (MQ Everyplace)
- 可访问的轻量级 JDBC 的数据库(PC 类设备上的 IBM Cloudscape 或 IBM DB2 Everyplace 以及手持设备上的 DB2 Everyplace)
- 设备管理代理,用于启用客户机的远程审计和以空中下载 (over-the-air) 方式部署新的或已更新的应用程序。
Lotus Expeditor 是在开放的开发平台 Eclipse 3.2 上构建的。可以在 Eclipse Web 站点 获取有关 Eclipse 的完整资料。在本文中,Lotus Expeditor 客户机工具包和工具包这两个名称是可以互换的,它们表示同一个事物。可以在 Eclipse 3.2 和 Web Tools Project 1.5.1 上安装该工具包,或者在 IBM Rational Application Developer V7.0 上安装它,IBM Rational Application Developer V7.0 是在 Eclipse 3.2 上构建的。
本文将讨论如何使用 Lotus Expeditor 客户机工具包来开发既可以在桌面设备上运行又可以在移动设备上运行的 RCP 应用程序。
为了便于讨论,本文提供了屏幕截图,并按步骤说明了如何创建示例 RCP 应用程序。实际的示例应用程序包含一些 Java 类文件,不过只要求您编写一些重要的方法,从而全面了解如何为 Lotus Expeditor 客户机构建应用程序。因此,本文有一个启动器应用程序,为您提供了业务逻辑代码。必须导入这个启动器应用程序,这部分工作是完成应用程序所必需的。参考本文的 下载 部分,获取启动器应用程序和已完成的应用程序的链接。
假定已经在 Rational Application Developer 7.0 或 IBM Rational Software Architect 上安装了 Lotus Expeditor。参阅 参考资料 部分以获取有关如何安装 Lotus Expeditor 的更多信息。虽然所演示的屏幕截图是与 Rational Software Architect 相关的,但是如果选择运行 Lotus Expeditor 工具包所需的其他基础产品,那么步骤和原理大体上是相同的。
下载 Rational Software Architect 的试用版和 Rational Application Developer for WebSphere Software V7.0 的试用版。
若要创建应用程序并在 Lotus Expeditor 客户机上部署它,则需要完成以下任务:
- 创建一个 Client Services 项目。
- 编写一个简单的富客户机插件。
- 添加所需的扩展点。
- 在 Lotus Expeditor 上运行 RCP 应用程序。
- 配置 RCP 项目以支持设备。
- 在 jclDevice 工作台上运行 RCP 应用程序。
- 在设备上部署并运行 RCP 应用程序。
对于创建 RCP 应用程序来说,第一步是创建 Client Services 项目。在这里,简单地创建一个充当富客户机插件容器的 Client Services 项目。
在基于 Eclipse 的开发环境中创建任何类型的项目之前,必须选择用来存储所有与项目相关的文件和配置的工作空间。选择工作空间来存储文件,然后更改为适合 Client Services 项目的透视图。
- 打开 Rational Software Architect 或 Rational Application Developer。本文假定您始终使用 Rational Software Architect 中已安装的工具包。
- 当提示选择工作空间时,输入一个新的工作空间名称。
- 当出现图 1 所示的提示时,即询问是否自动设置 Lotus Expeditor 工具包的偏好,单击 OK,然后等待完成该过程。
图 1. 设置偏好
- 打开工作空间后,关闭 Welcome 页面,然后从菜单选择 Window - Open Perspective - Other,切换到 Plug-in Development 透视图。
- 选择 Plug-in Development 透视图并单击 OK。
Lotus Expeditor 包新增了能够为现有开发环境(Rational Application Developer、Rational Software Architect 或 Eclipse)创建 Client Services 项目的特性。在本步骤中,将创建 Client Services 项目。
- 从菜单选择 File - New - Project。
- 在 Select a Wizard 窗口中,展开 Client Services 文件夹,然后选择 Client Services Project。
- 单击 Next。
- 输入 com.ibm.lotusphere.rcp 作为 Project name,而且 “Create a new Client Services Plug-in Project” 窗口中的其他设置均使用默认值。然后单击 Next。
- 接受默认值。输入生成插件所需的数据,然后单击 Next。
- 在窗口中选择该项目的 Target Definition and Target Features,请确保 Target 下拉列表中显示了 Default Target,然后单击 Finish 来创建新项目。
在该步骤中,将启动器应用程序导入到上一步骤中创建的 Client Services 项目中。这个导入操作将在现有 Client Services 项目中创建一个 RCP 插件。完成导入之后,还将实现 Views 类和 UI 类,它们代表了应用程序的用户界面。继续进行该步骤之前,将启动器应用程序 RCP_Files.zip(参阅本文的 下载 部分)下载到临时目录中,如 C:\temp。
为了达到便于携带、易于开发的目的,Eclipse 架构提供了一种导出和导入项目文件的方法。我们已经创建了启动器应用程序并将其导出为 RCP_Files.zip。在这里,将导入该文件以获取所有业务逻辑和配置。可自由探讨所有 XML 文件和 Java 文件,以便更好地理解该应用程序。
- 在 Package Explorer 中选择 com.ibm.lotusphere.rcp 项目,右键单击它并选择 Import。
- 在下一个窗口中,展开 General 节点并选择 Archive File 向导。
- 单击 Next。
- 在下一个窗口中,浏览到已下载的归档文件 RCP_Files.zip,并确保已选择根节点,如图 2 所示。
图 2. 选择要导入的归档文件
- 单击 Finish,将文件导入项目。
在该步骤中,将为应用程序创建视图。视图因设备类型的不同而异。Lotus Expeditor 已经顾及屏幕渲染中的此类差异。但是应确保任何打上标记的素材(例如图像)都是适合特定目标设备的。示例应用程序中展示了四个条目,分别是标签、下拉列表、图像或文本框。图像文件代表在下拉列表中选择的某一个国家的国旗。为每一个国家创建了两个国旗图像,其中一个比另一个稍微大一些,除此之外两个图像是一样的。较大的图像用于桌面客户机;而较小的图像用于移动客户机。在以下步骤中,将创建封装了用户界面的 UI Java 类。该 UI 类同时用于移动客户机和桌面客户机。为了区别不同类型的客户机(在本例中只有两种客户机),将创建实例变量 isDesktop。通过调用 Java 类(将在稍后步骤中编写),以编程方式设置该变量,该变量取决于客户机类型。
- 在 Package Explorer View 中展开 com.ibm.lotusphere.rcp 项目,然后展开 src 文件夹。
- 选择 com.ibm.lotusphere.rcp 包,右键单击它,然后从菜单中选择 New - Class。
- 在 New Java Class 对话框中,确保已选择 com.ibm.lotusphere.rcp 作为包名,然后输入 UI 作为新类的名称。
- 单击 Add 按钮,在 Choose interfaces 字段中键入 org.eclipse.swt.events.SelectionListener,再次单击 Add 按钮,然后单击 OK 按钮。
- 确保已选择 Inherited 抽象方法,如图 3 所示。
图 3. 创建 UI Java 类
- 单击 Finish,在工作台的编辑器区域中查看新建的用户界面类 UI.java。
- 在类定义之后添加以下实例变量,如清单 1 所示。
清单 1. 类中的实例变量
private Composite c;
private Label flag;
private Combo combo;
private boolean isDesktop = true;
private Text results;
|
- 右键单击 Java 编辑器中的任何地方,然后从上下文菜单中选择 Source - Organize Imports。
- 如果出现提示,则选择 org.eclipse.swt.widgets.Text 类并单击 Finish。
- 在 UI Java 类编辑器中,创建带有参数的新构造函数,如下列代码所示:
public UI (boolean isDesktop) {
this.isDesktop = isDesktop;
} - 接下来,在 UI Java 类中使用清单 2 中的代码来创建 makeUI() 方法。
清单 2. 为应用程序创建 UI 的方法
public Composite makeUI (Composite parent) {
c = new Composite (parent, SWT.NONE);
GridLayout grid = new GridLayout ();
grid.numColumns = 1;
c.setLayout (grid);
final Label label = new Label (c, SWT.NONE);
label.setText ("Select a country from the list:");
combo = new Combo (c, SWT.READ_ONLY);
Utils.loadCountryList (combo);
combo.addSelectionListener (this);
flag = new Label (c, SWT.FLAT);
results = new Text (c, SWT.WRAP | SWT.READ_ONLY | SWT.V_Scroll);
GridData gridData = new GridData ();
gridDate.grabExcessHorizontalSpace = true;
gridDate.grabExcessVerticalSpace = true;
gridData.verticalAlignment = GridData.FILL;
gridData.horizontalAlignment = GridData.FILL;
results.setLayoutData (gridData);
return c;
}
|
- 右键单击编辑器区域中的任何地方,然后选择 Source - Organize Imports。
- 修改 widgetSelected() 方法以包含以下代码,如清单 3 所示。
清单 3. 修改 WidgetSelected 方法
public void widgetSelected (SelectionEvent arg0) {
// TODO Auto-generated method stub
Utils.loadFlag (flag, combo.getSelectionIndex (), isDesktop);
c.layout ();
String countryStats = "";
int idx = coombo.getSelectionIndex () - 1;
if (idx >= 0) {
Countries stats = new Countries(idx);
countryStats =
"Capital: " + stats.getCapital () +
"\nPopulation: " + stats.getPopulation () +
"\nArea: " + stats.getArea () +
"\nCurrency: " + stats.getCurrency () +
"\nGDP: " + stats.getGDP () +
"\nPer Capita GDP: " + stats.getPerCapitaGDP () +
"\nGrowth Rate: " + stats.getGrowthRate () +
"\nInflation: " + stats.getInflation () +
"\nEthnicity: " + stats.getEthnicity () +
"\nLanguages: " + stats.getLanguages () +
"\nReligions: " + stats.getReligions ();
}
results.setText (countryStats);
c.layout ();
}
|
- 修改 widgetDefaultSelected() 方法以包含以下代码,如清单 4 所示。
清单 4. widgetDefaultSelected 方法
public void widgetDefaultSelected (SelectionEvent arg0) {
// TODO Auto-generated method stub
widgetSelected (arg0) ;
}
|
- 保存并关闭 UI.java。
可以通过桌面客户机和移动客户机来访问示例应用程序。首先创建桌面视图类,它将调用先前创建的 UI 类。
- 在 Package Explorer 中选择 com.ibm.lotusphere.rcp 包,右键单击它,然后从菜单中选择 New - Class。
- 在 New Java Class 对话框中,请确保已选择 com.ibm.lotusphere.rcp 作为包,然后键入 DesktopView 作为新类的名称,键入 org.eclipse.ui.part.ViewPart 作为它的超类。请参阅图 4。
图 4. 创建 DesktopView 类
- 确保已选择 Inherited 抽象方法。
- 单击 Finish 以生成新类。这时,应该能够在工作台的编辑器区域中查看 DesktopView.java。
- 在 DesktopView.java 中,更改 createPartControl() 方法以便调用 UI 类方法,如清单 5 所示。
清单 5. DestopView 类中的 createPartControl() 方法
public void createPartControl (Composite parent) {
UI ui = new UI (true);
ui.makeUI (parent);
}
|
- 保存并关闭 DesktopView.java。
在该步骤中,将创建移动客户机视图,它将调用先前创建的 UI Java 类。
- 在 Package Explorer 中选择 com.ibm.lotusphere.rcp 包,右键单击它,然后从菜单中选择 New - Class。
- 在 New Java Class 对话框中,选择 com.ibm.lotusphere.rcp 包,然后键入 DeviceView 作为新类的名称,键入 org.eclipse.ui.part.ViewPart 作为它的超类。
- 确保已选择 Inherited 抽象方法选项。
- 单击 Finish 以生成新类。这时,应该能够在工作台的编辑器区域中查看 DeviceView.java 。
- 在 DeviceView.java 中,更改 createPartControl() 方法以调用 UI 类方法,如清单 6 所示。
清单 6. DeviceView 类中的 createPartControl() 方法
public void createPartControl (Composite parent) {
UI ui = new UI (false);
ui.makeUI (parent);
}
|
- 保存并关闭 DeviceView.java。
使用 Eclipse 扩展和扩展点来扩展平台或其他插件(应用程序或服务)的功能。在该步骤中,将向在上一节中创建的视图类中的插件添加所需的扩展。
- 使用 Package Explorer 视图,打开位于 META-INF 文件夹下的插件描述符文件 MANIFEST.MF。打开该文件之后,选择 Extensions 附签。
- 单击 Add 按钮以打开 New Extension 向导。
- 在该向导中,在 Extension Point Filter 字段中键入 org.eclipse.ui.views,然后从结果框中选择它,如图 5 所示。
图 5. 添加视图扩展点
- 单击 Finish 以创建扩展。
- 在插件描述符文件中,从 All Extensions 列表中选择新建的扩展 org.eclipse.ui.views,右键单击它,然后从菜单中选择 New - View。
- 将扩展元素的详细信息更改为以下值,如图 6 所示。
- id:更改为 com.ibm.lotusphere.rcp.DesktopView
- name:更改为 Desktop View
- class:更改为 com.ibm.lotusphere.rcp.DesktopView
- category:更改为 org.eclipse.ercp.eworkbench.viewCategory
图 6. DesktopView 扩展属性
- 在插件描述符文件中,再次从 All Extensions 列表中选择扩展点 point org.eclipse.ui.views,右键单击它,然后从菜单中选择 New - View。
- 将新扩展元素的值更改为以下值,如图 7 所示。
- id:更改为 com.ibm.lotusphere.rcp.DeviceView
- name:更改为 Device View
- class:更改为 com.ibm.lotusphere.rcp.DeviceView
- category:更改为 org.eclipse.ercp.eworkbench.viewCategory
图 7. DeviceView 扩展属性
- 在插件描述符文件中,再次单击 Add 按钮以打开 New Extension 向导。
- 在该向导中,取消选中 “Show only extension points from the required plug-ins” 选项。在 Extension Point Filter 字段中,键入 org.eclipse.ercp.eworkbench.applications,然后从结果中选择它,如图 8 所示。
图 8. 添加应用程序扩展点
- 单击 Finish 以添加扩展点;如果收到提示,询问是否希望将处理程序插件添加到依赖项中,则单击 No。
- 回到插件描述符文件中的 Extensions 附签,从列表中选择并右键单击 org.eclipse.ercp.eworkbench.applications,然后从菜单中选择 New - Application。
- 更改以下元素的值,如图 9 所示,然后保存所作的更改:
- id:更改为 com.ibm.lotusphere.rcp
- name:更改为 Geo Info App
图 9. 更改应用程序的属性
- 展开 org.eclipse.ercp.eworkbench.applications,右键单击 Geo Info App 节点,然后从菜单中选择 New - Views。
- 将视图元素的值更改为以下值,如图 10 所示,然后保存所作的更改。
- normal:更改为 com.ibm.lotusphere.rcp.DeviceView
- large:更改为 com.ibm.lotusphere.rcp.DesktopView
图 10. 视图扩展属性
- 现在切换到 plugin.xml 附签,将展示文件的源代码。在前面步骤中添加了扩展点之后,源代码类似于清单 7。
清单 7. 插件描述符文件
<?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.2"?> <plugin> <extension point="org.eclipse.ui.views"> <view category="org.eclipse.ercp.eworkbench.viewCategory" class="com.ibm.lotusphere.rcp.DesktopView" id="com.ibm.lotusphere.rcp.DesktopView" name="Desktop View"/> <view category="org.eclipse.ecrp.eworkbench.viewCategory" class="com.ibm.lotusphere.rcp.DeviceView" id="com.ibm.lotusphere.rcp.DeviceView" name="Device View"/> </extension> <extension point="org.eclipse.ercp.eworkbench.applications"> <application id="com.ibm.lotusphere.rcp" name="Geo Info App"> <views large="com.ibm.lotusphere.rcp.DesktopView" normal="com.ibm.lotusphere.rcp.DeviceView"/> </application> </extension> </plugin> |
- 保存并关闭编辑器。
在 Lotus Expeditor 上运行 RCP 应用程序
接下来,将创建启动配置,以便在 Lotus Expeditor 上运行 RCP 应用程序。
- 在 Rational Software Architect 菜单上选择 Run - Run。
- 选择左侧的 Client Services,右键单击它,然后从上下文菜单中选择 New,将为应用程序创建新的启动配置。
- 输入 Geo Info App on Desktop 作为启动配置的名称。
- 单击 Apply,然后单击 Run 来启动 Lotus Expeditor。
- 首次启动 Lotus Expeditor 时,必须输入密码,该密码用于 Lotus Expeditor KeyStore。输入所选择的密码,并记得将密码记录下来,因为在以后的启动中必须输入该密码。
- 单击 Login。
- 单击 Lotus Expeditor 左上区域中的 Launch 按钮,然后从应用程序列表中选择 Geo Info App ,从而选择 RCP 应用程序。
- 将启动 RCP 应用程序,如图 11 所示。
图 11. 运行 RCP 应用程序
- 如果从下拉列表中选择一个国家,将在国家名称下方看到相应的国旗。
- 退出 Lotus Expeditor。
下面,将修改现有项目来添加对设备的支持。
默认情况下将基本平台的偏好设置为用于桌面客户机。通过提供可用于客户机设备的预构建配置,Lotus Expeditor 工具包为客户机设备的应用程序开发提供了方便。所要做的事情就是在偏好中设置适当的值;然后准备在设备上运行同一个应用程序。
- 从 Rational Software Architect 菜单中选择 Window - Preferences。
- 在左列中,选择 Client Services 并将 Default Target Selection 更改为 Default Device Target。
- 在左列中,选择 Java - Installed JREs,然后在右侧窗格中选择 jclDevice Win32 x86。
- 在左列中,选择 Plug-in Development - Target Platform。在右侧窗格中查找 Pre-defined Target 部分。然后从下拉列表中选择 Default Device Target,并单击 Load Target 按钮来载入设备目标所需的插件。请参阅图 12。
图 12. 载入设备目标
- 单击 OK,保存并退出项目偏好。
注意:将看到项目中存在的一些错误。在以下步骤中将改正这些错误。
载入默认的设备目标后,运行时可用于应用程序的插件也发生了变化。对于 Geo Info 应用程序来说,一些以前可用的插件现在不再可用。因此,对 plugin.xml 进行修改,以便导入所需包。
- 打开 plugin.xml。
- 在 Imported Packages 下的 Dependencies 附签中,单击 Add。然后添加下列包,如图 13 所示:
- org.eclipse.swt
- org.eclipse.swt.events
- org.eclipse.swt.graphics
- org.eclipse.swt.layout
- org.eclipse.swt.widgets
- org.eclipse.ui.part
- org.eclipse.ui.plugin
图 13. 添加所导入的包
-
保存并关闭 plugin.xml。
注意:现在已消除所有错误。
现在运行 RCP 应用程序(它使用了来自 Rational Software Architect 的 jclDevice 启动配置)对使用了设备运行时的应用程序进行测试。
- 从 Rational Software Architect 菜单中选择 Run - Run。
- 选择 Client Services,右键单击它,然后从上下文菜单中选择 New,为应用程序创建新的启动配置。
- 输入 RCP Application on Device 作为启动配置的名称。
- 单击 Apply,然后单击 Run,将在 eWorkbench 上启动 RCP 应用程序。
- eWorkbench 上将列出 RCP 应用程序,如图 14 所示。单击来运行它,并从列表中选择国家名来对它进行测试,如图 15 和图 16 所示。
图 14. eWorkbench 视图
图 15. 运行应用程序
图 16. 查看国家数据
- 退出 Lotus Expeditor。
在该步骤中,将 RCP 插件打包作为特性,然后使用更新站点对它进行部署,将其转到设备文件系统,从而可以使用 Application Manager 来执行本地安装。
特性是插件的容器,而且在逻辑上代表特定产品的功能。将使用特性来打包插件以及交付产品。在本节中,将导出示例应用程序作为特性。
- 选择 File - New - Project 来访问项目向导。
- 在 Plug-in Development 下,选择 Feature Project。
- 单击 Next。
- 在 Project name 字段中,键入 Geo Info App。
- 单击 Finish 来创建 Feature 项目。这时,在工作台的编辑器区域中,应该已经打开了 Feature 项目的 feature.xml 文件。
- 在 feature.xml 文件中,选择 Plug-ins 附签。
- 单击 Plug-ins and Fragments 旁边的 Add 按钮,将 com.ibm.lotusphere.rcp 插件添加到列表。
- 保存并关闭 feature.xml。
Update Site 项目允许为所有必需特性和插件创建存储库,并将这些项目用作安装特性和/或插件的机制。
- 选择 File - New - Project 来访问项目向导。
- 在 Plug-in Development 下,选择 Update Site Project。
- 单击 Next。
- 在 Project name 字段中,键入 Geo Info App UpdateSite。
- 单击 Finish 来创建 Update Site 项目。这时,在工作台的编辑器区域中,应该已经打开了站点项目的 site.xml 文件。
- 在 site.xml 文件中选择 Site Map 附签,如果尚未选中该附签的话。
- 单击 New Category。
- 在窗口的 Category Properties 部分中,输入 My Apps 作为类别名称和标签,如图 17 所示。
图 17. 添加类别
- 单击 Add Feature 并输入 Geo_Info_App,如图 18 所示。
图 18. 添加特性来更新站点
- 请确保将特性添加到类别下。如果没有的话,将 Geo_Info_App 拖放到 My Apps 类别中。
- 单击 Build All。
- 在 site.xml 文件中,转到 site.xml 附签,并将类型属性添加到站点节点,如清单 8 中代码所示。
清单 8. 更新 XML 文件
<?xml version="1.0" encoding="UTF-8"?> <site type="org.eclipse.ercp.update.http"> <feature url="features/Geo_Info_App_1.0.0.jar" id="Geo_Info_App" version="1.0.0"> <category name="My Apps"/> </feature> <category-def name="My Apps" label="My Apps"/> </site> </code> |
- 保存并关闭 site.xml 文件。
为了在设备上安装示例应用程序,先将所需特性、插件以及与站点相关的文件导入本地目录。在选定设备之前,请确保正在使用 InfoCenter(参阅本文 参考资料 部分)中所描述的一种受支持设备。在设备上安装 IBM Lotus Expeditor 客户机,如果尚未安装的话。
- 右键单击 My Update Site 项目并选择 Export。
- 在 General 下,选择 File System。
- 单击 Next。
- 选择或浏览到要导出的目录,然后单击 Finish。
- 若要在设备上安装 RCP 应用程序,则确保使用 USB 来连接设备。使用 File Explorer,导航到 Mobile Device,然后导航到 \My Documents\Personal。
- 将所导出的文件 —— site.xml 文件、特性和插件目录 —— 复制到设备上的 \My Documents\Personal 目录中,如图 19 所示。
图 19. Update site 文件
- 在设备上,打开 Lotus Expeditor。
- 在 Lotus Expeditor 内部,运行 Application Manager 并选择 Install New Applications/Features。
- 出现 “You can create a new location by Command>Add Location.” 提示时,单击 OK。
- 选择 Command - Add Location,然后选择 Local site。
- 单击 Next。
- 选择 Personal 文件夹并单击站点条目。
- 单击 Finish。
- 选择新的本地站点并单击 Next。
- 展开站点并选择 Geo_Info_App_Feature。
- 单击 Next,接受条款,然后单击 OK,重新启动 Lotus Expeditor。
- 等待重新启动 Application Manager,然后单击 OK 来关闭它。几秒钟之后,将看到 Geo Info App 应用程序已被安装到设备的 eWorkbench 上。
- 像前面的操作一样,运行应用程序并测试它的功能。
现在已经在设备客户机上成功运行了应用程序。虽然我们可以对应用程序进行增强,以便包含设计模式和其他后端基础设施(例如 MQe、Web 服务以及 DB2e),但是为了保持各方面的简单化,我们没有选择这么做。示例的重点是给出一系列高度概括的步骤,它们是创建既可以在桌面上运行又可以在设备客户机上运行的应用程序时所必需的步骤。
本文演示了如何使用 Lotus Expeditor 客户机工具包来开发简单的 RCP 示例,以及如何在移动设备上部署它。使用相同的方法,通过创建新视图并重用现有业务逻辑和数据,可以方便地将现有应用程序移植到移动设备上。尽管该示例并没有利用 Lotus Expeditor 的高级特性(例如在线/离线支持、事务支持、消息传递、组合应用程序和数据库同步),但是在现有代码的基础上可以方便地添加这些特性和服务。
| 名字 | 大小 | 下载方法 |
|---|---|---|
| RCP_Files.zip | 669KB | HTTP |
| GeoInfoAppDesktop.zip | 1.36MB | HTTP |
| GeoInfoAppUpdateSite.zip | 591KB | HTTP |
学习
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
-
参阅 developerWorks Lotus 文章 “Migrating Eclipse RCP applications to IBM Lotus Expeditor”。
-
参阅 developerWorks Lotus 文章 “Creating collaborative components for IBM Lotus Expeditor Property Broker”。
-
参阅 developerWorks Lotus 文章 “开发 OSGi 服务作为 IBM Lotus Expeditor 中的 Web 服务”。
-
参阅 developerWorks Lotus 文章 “Building and deploying a simple Web Services Resource in IBM Lotus Expeditor”。
-
参阅 IBM 红皮书读物
Building Composite Applications in Lotus Expeditor V6.1
。
-
学习有关 Eclipse RCP Platform 的更多内容。
-
参阅 developerWorks Lotus Expeditor 页面。
-
参阅 IBM Lotus Expeditor 产品页面。
-
参考 IBM Lotus Expeditor Education Assistant。
-
参考 IBM Lotus Expeditor 信息中心。
获得产品和技术
-
下载 IBM Rational Application Developer for WebSphere Software V7.0 试用版。
-
下载 IBM Rational Software Architect V7.0 试用版。
讨论