如果在 WebSphere® Studio V5.1.x 中创建了 JavaServer Faces JavaServer Pages(JSP)中包含 Faces Client 组件的项目,则必须将 Faces Client 组件的运行时资源迁移到最新级别。
由于不能读取 <class_name>.java,所以不能构建项目。不能读取这些文件,原因是 V5.1.x 项目中的“客户机数据”介体类包含一些未进行编码的特殊字符,而 Rational Web Developer V6.0 中的介体类会对这些字符进行编码。一旦遵循上面描述的步骤重新生成了“客户机数据”,就不会再产生这些错误消息了。但是,在遵循这些步骤来迁移包含 Faces Client 组件的项目之前,首先必须从装入到 V6.0 中的项目中删除“客户机数据”介体文件以便可以构建工作空间。要删除“客户机数据”介体文件:
在某些情况下,可能会产生生成介体失败消息。要更正此问题,编辑 OdysseyBrowserFramework.properties 文件,删除 EMAP_FILES 和 ECORE_FILES 属性的条目,然后再试。
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 重新生成了“客户机数据”介体类之后,仍然存在一些不会编译的介体类。存在一些在 V6.0 中的“服务数据对象”(SDO)中不再使用的模式元素的介体。这些介体的命名约定为 *_DataGraphSchema_wdo4js_*.java 和 *_RootDataObject_wdo4js_*.java。从项目中删除这些介体类以防止发生这些编译错误。
在成功完成迁移之后,恢复 OdysseyBrowserFramework.properties 文件的原始内容。
String Diff = getClientData1().getDiffStr(); if (DiffProcessor.Synch(getRoot(), Diff) == true) return ""; return "failure";
find 和 getId 方法由生成的 DiffHandler 内部使用。对于定制 DiffHandler,可以实现空的方法,只是为了与接口兼容。框架将不会调用那些方法。
public interface DiffHandler { public void handle(DiffInfo Diff) throws DiffException, Exception; public Object find (DiffInfo Diff) throws DiffException, Exception; public String getId (DiffInfo Diff, boolean Original); }
public class DiffInfo { public char getCrud() public DataObject getCurrent() public String getEClassName() public DataObject getOriginal() public String getPropertyName() public DiffInfo getParent() }