原來在 WebSphere® Studio
Application Developer 5.1.x 版中所附的 JavaServer Faces 用戶端執行時期資源,
在 Rational® Application
Developer 6.0.1 版已更新。如果您要繼續在以這個舊產品版本建立的 Web 專案上進行開發,建議您將 Faces 用戶端執行時期資源更新到最新的層次。
在 Rational Application
Developer 6.0.1 版中,當匯入的 Web 專案或開啟的工作區含有過期的資源時,Faces 用戶端執行時期資源即會自動更新。
在從 WebSphere Studio
Application Developer 5.1.x 版匯入 Web 專案或開啟工作區至 Rational Application
Developer 6.0.1 版之後,系統會提示您將 Faces 用戶端執行時期資源更新到最新的層次。
自動更新執行時期資源
若要
自動更新 Web 專案的 Faces 用戶端執行時期資源,請執行下列動作:
- 從 WebSphere Studio
Application Developer 5.1.x 版匯入含有 Faces 用戶端內容的 Web 專案(或工作區)。這時會開啟「專案移轉」視窗。
註: 如果「專案移轉」視窗未開啟,您的自動建置喜好設定可能已停用。請在專案瀏覽器中,
用滑鼠右鍵按一下 Web 專案,然後選取;重新建置專案的程序即會開啟「專案移轉」視窗。
- 如果工作區中有其他 Web 專案含有 Faces 用戶端內容,請勾選將這個選項套用到任何其他需要升級的專案,則所有的 Web 專案都會更新。
- 按下列其中一項:
- 是來自動完成更新。
- 稍後來延遲更新。在選取稍後之後,如果要自動更新執行時期資源,
您必須先關閉再重新開啟 Web 專案,或重新啟動工作台,才能重新建置 Web 專案。如果您已停用自動建置,
請用滑鼠右鍵按一下 Web 專案,然後選取建置專案。
- 絕不來維持執行時期資源為舊版。
如果您選擇絕不並有意留在舊版的執行時期資源,
系統即不再提示您進行更新。將來您需要執行時期資源時,您必須手動加以更新。
- 從 Web 專案的 資料夾中,刪除命名慣例為 com.ibm.dynwdo4jsmediators.<client-data-name> 的所有用戶端資料調節器類別套件。
請勿刪除名稱為 com.ibm.dynwdo4jsmediators 的套件。這個套件含有專案中用來重新產生調節器之用戶端資料的 Meta 資料(ecore 和 emap 檔)。
- 從 Web 專案的 資料夾中,開啟 OdysseyBrowserFramework.properties 檔,然後刪除 EMAP_FILES 和 ECORE_FILES 的項目。
- 對「用戶端資料」視圖中的每一個資料物件,執行下列動作:
- 按一下滑鼠右鍵來選取配置。
- 在進階標籤中,按一下從伺服器端資料重新產生來重新產生資料物件的所有調節器。
手動更新執行時期資源
若要
手動更新 Web 專案的 Faces 用戶端執行時期資源,請執行下列動作:
- 完成更新 Web 專案中的 Faces 執行時期資源中的手動更新執行時期資源步驟。
- 完成上述自動更新執行時期資源一節的步驟 4-6。
將含有 Faces 用戶端元件之專案的目標伺服器從 WebSphere Application Server 5.1 版改成 6.0 版時,可能會發生問題。
將含有 Faces 用戶端元件之專案的目標伺服器從 WebSphere Application
Server 5.1 版改成 6.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。
- 在重新產生用戶端資料調節器類別之後,仍會留下一些調節器類別未編譯。這些是不再用於 6.x 版的「服務資料物件」(SDOs) 中之綱目元素的調節器,其命名慣例為 *_DataGraphSchema_wdo4js_*.java 和 *_RootDataObject_wdo4js_*.java。
請從 Web 專案中刪除這些調節器類別,以避免發生這些編譯錯誤。
- 在順利完成更新之後,還原 OdysseyBrowserFramework.properties 檔的原始內容。
- 在將專案的目標伺服器改成 WebSphere Application Server 6.0 版之後,
連結至 WDO 的樹狀視圖 Faces 用戶端元件即無法在該伺服器上執行。
暫行解決方法是修改 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 是資料節點的名稱。
升級至自動化的 Diff 處理常式和處理器
Diff 處理器和處理常式現在會自動產生。如果您在 WebSphere Studio 5.1.x 版中撰寫 Faces 用戶端元件的 Diff 處理常式和處理器,
建議您捨棄該程式碼,改用自動產生的處理器和處理常式:
- 針對 Web 專案中的每一個用戶端資料物件,產生新的 Diff 處理常式和處理器。
- 選取用戶端資料物件,按一下滑鼠右鍵來選取配置。
- 在進階標籤中,按一下全部重新產生。
- 移除您撰寫來呼叫 Diff 處理器和處理常式的程式碼,原因是系統會自動呼叫產生的處理器和處理常式。使用這種程式碼的典型例子是「指令按鈕」元件的指令事件,如:
String Diff = getClientData1().getDiffStr();
if (DiffProcessor.Synch(getRoot(), Diff) == true)
return "";
return "failure";
- 從 Web 專案中移除您建立的舊自訂處理常式和處理器所對應的檔案。
保留對 5.1.x 版所撰寫的自訂 Diff 處理常式和處理器
雖然不建議您這麼做,但如果您決定需要保留 5.1.x 版的 Diff 處理常式和處理器,
您必須加以修改才能在 6.0 版中運作,因為 DiffHandler 介面和 DiffInfo 類別已變更。
6.0 版之 Faces 用戶端元件的變更- WebSphere Application
Server 6.0 版的支援。
- WebSphere Application Server 6.0 版上「服務資料物件」(SDO) 的支援。
- 現在,支援用戶端資料使用 EGL 資料。
- 會自動產生 Diff 處理器和處理常式。
- 下列元件有新的事件:
- TabbedPanel:onInitialPageShow
- Tree:onNodeExpand、onNodeCollapse、onExpand、onCollapse
- DataGrid:onPage、onSort、onFilter