如果您在 WebSphere® Studio 5.1.x 版中,建立了在 JavaServer Faces JavaServer Pages (JSPs) 中包含 Faces 用戶端元件的專案, 您必須將 Faces 用戶端元件的執行時期資源移轉至最新的層次。
無法建置專案,因為無法讀取 <class_name>.java。無法讀取這些檔案,可能是因為 5.1.x 版專案中的用戶端資料調解者類別含有未編碼的特殊字元,但 Rational Web Developer 6.0 版的調解者類別會編碼這些字元。 您遵循上述步驟來重新產生用戶端資料之後,就會停止出現這些錯誤訊息。不過,在遵循步驟來移轉包含 Faces 用戶端元件的專案之前,您必須先從 6.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 的用戶端資料調解者類別之後,仍有些調解者類別會保留未編譯狀態。 它們是 6.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 使用。對於您的自訂 DiffHandlers,您可以只是為了符合介面規格而實作空的方法。 組織架構不會呼叫這些方法。
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() }