已经对 Rational® Application
Developer V6.0.1 更新了 WebSphere® Studio
Application Developer V5.1.x 中最初提供的
JavaServer Faces Client 运行时资源。如果想要继续在使用此先前产品版本创建的 Web 项目上进行开发,建议您将
Faces Client 运行时资源更新为最新级别。
在 Rational Application
Developer V6.0.1 中,当导入
Web 项目或者打开包含过时资源的工作空间时,就会自动更新
Faces Client 运行时资源。在 Rational Application
Developer V6.0.1 中,导入来自 WebSphere Studio
Application Developer V5.1.x 的 Web 项目或者打开来自 V5.1.x 的工作空间之后,将提示您将 Faces Client 运行时资源更新为最新级别。
自动更新运行时资源
要
自动更新 Web 项目的 Faces Client 运行时资源:
- 导入一个包含来自于 WebSphere Studio
Application Developer V5.1.x 的 Faces Client 内容的 Web 项目(或工作空间)。“项目迁移”窗口将打开。
注: 如果“项目迁移”窗口未打开,则可能已经禁用了自动构建首选项设置。在“项目资源管理器”中,右键单击 Web 项目并选择;重建项目的过程将打开“项目迁移”窗口。
- 如果工作空间中具有其它包含 Faces Client 内容的 Web 项目,则选择将此选项应用于需要升级的其它任何项目,就会更新所有 Web 项目。
- 单击下列其中一项:
- 单击是以自动完成更新。
- 单击稍后以延迟更新。要在选择稍后之后自动更新运行时资源,您必须先关闭然后重新打开 Web 项目,或者在重建 Web 项目之前重新启动工作台。如果已经禁用了自动构建,则右键单击 Web 项目并选择构建项目。
- 单击从不以保持运行时资源后备级别。如果您选择从不并且有意保持后备级别运行时资源,则将不会再次提示您更新它们。如果您将来需要这些运行时资源,则需要手工更新它们。
- 从 Web 项目中的 文件夹中,删除命名约定为 com.ibm.dynwdo4jsmediators.<client-data-name> 的所有客户机数据介体类包。不要删除名为 com.ibm.dynwdo4jsmediators 的包。此包包含项目中客户机数据的元数据(ecore 和 emap 文件),它们将用来重新生成介体。
- 从 Web 项目中的 文件夹中,打开 OdysseyBrowserFramework.properties 文件并删除 EMAP_FILES 和 ECORE_FILES 的条目。
- 对于“客户机数据”视图中的每个数据对象:
- 右键单击并选择配置。
- 在高级选项卡上,单击从服务器端的数据重新生成以便为数据对象重新生成所有介体。
手工更新运行时资源
要
手工更新 Web 项目的 Faces Client 运行时资源:
- 完成更新 Web 项目中的 Faces 运行时资源中的手工更新运行时资源步骤。
- 完成上面的自动更新运行时资源这一节中的步骤 4 到步骤 6。
当将包含 Faces Client 组件的项目的目标服务器从 WebSphere Application Server V5.1 更改为 V6.0 时可能会产生问题。
当将包含 Faces Client 组件的项目的目标服务器从 WebSphere Application Server V5.1 更改为 V6.0 时可能会产生两个问题:
- 将不再编译已经生成的客户机数据介体类。需要重新生成它们,一次一个 JSP。
- 打开根 Java™ 源文件夹中的
OdysseyBrowserFramework.properties 文件。保存内容以供将来使用。
- 在 OdysseyBrowserFramework.properties 文件中,对于 Web 项目中包含 Faces 客户机数据的每个 JSP,查找 EMAP_FILES 和 ECORE_FILES 属性的 <client-data-name>.ecore 和 <client-data-name>.emap 条目。
- 只保留与 JSP 上的客户机数据相匹配的条目,删除所有其它条目。
例如,当前页面具有称为 ACCOUNT 的“客户机数据”,而属性文件具有类似如下的条目:
EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap com\\ibm\\dynwdo4jsmediators/orders.emap
应从该条目中删除
com\\ibm\\dynwdo4jsmediators/orders.emap。现在,该条目的内容如下:
EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap
- 保存该属性文件。
- 在 JSP 中选择客户机数据对象,然后单击右键并选择配置。
- 在高级选项卡上,单击全部重新生成。这将重新生成当前 JSP 上的所有客户机数据所需的所有工件。
- 对 Web 项目中包含客户机数据的每个 JSP 重复步骤 2 到步骤 6。
- 在重新生成客户机数据介体类之后,仍然存在一些不会编译的介体类。这些是 V6.x 中的“服务数据对象”(SDO)中不再使用的模式元素的介体,并且这些介体的命名约束为 *_DataGraphSchema_wdo4js_*.java 和 *_RootDataObject_wdo4js_*.java。从 Web 项目中删除这些介体类以防止发生这些编译错误。
- 在成功完成更新之后,恢复 OdysseyBrowserFramework.properties 文件的原始内容。
- 在将项目的目标服务器更改为 WebSphere Application Server V6.0 之后,绑定至
WDO 的树形视图 Faces Client 组件无法在服务器上运行。变通方法是修改 JSP 的“源代码”视图以将所有
className 标记更改为使用 SDO DataObject 类而不是使用 WDO DataObject 类。例如,对于名为 account 的 WDO:
- 对于根对象,将 className 标记从 className="com.ibm.etools.wdo.DataObject(DynWDO`account`RootDataObject)" 更改为 className="commonj.sdo.DataObject(DynWDO`account`DataGraphRoot)"。
- 对于所有子节点,将 className 标记从 className="com.ibm.etools.wdo.DataObject(DynWDO`account`ACCOUNT)" 更改为 className="commonj.sdo.DataObject(DynWDO`account`ACCOUNT)",其中
ACCOUNT 是数据节点的名称。
升级到自动差别处理程序和处理器
现在会自动生成差别处理器和处理程序。如果在 WebSphere Studio V5.1.x 中为 Faces Client 组件编写了差别处理程序和处理器,则建议您废弃该代码并使用自动生成的处理器和处理程序:
- 对 Web 项目中每个客户机数据对象生成新的差别处理程序和处理器。
- 选择客户机数据对象,右键单击并选择配置。
- 在高级选项卡上,单击全部重新生成。
- 除去为调用差别处理器和处理程序而编写的代码,原因是会自动调用生成的处理器和处理程序。以前,使用此代码的典型示例是用于“命令按钮”组件的“命令”事件,如下所示:
String Diff = getClientData1().getDiffStr();
if (DiffProcessor.Synch(getRoot(), Diff) == true)
return "";
return "failure";
- 从 Web 项目中除去与您创建的旧的定制处理程序和处理器对应的文件。
保留为 V5.1.x 编写的定制差别处理程序和处理器
虽然建议不要这么做,但是如果您决定需要保留来自
V5.1.x 的定制差别处理程序和处理器,则需要对它们进行修改才能在
V6.0 中工作,这是因为 DiffHandler 接口和 DiffInfo 类已经更改。
在 V6.0 中对 Faces Client 组件的更改- 支持 WebSphere Application Server V6.0。
- 支持 WebSphere Application Server V6.0 上的“服务数据对象”(SDO)。
- 现在支持将 EGL 数据用作客户机数据。
- 自动生成差别处理器和处理程序。
- 存在下列组件的新事件:
- TabbedPanel:onInitialPageShow
- Tree:onNodeExpand、onNodeCollapse、onExpand 和 onCollapse
- DataGrid:onPage、onSort 和 onFilter