當試圖從「頁面資料」視圖中拖放到內含自由佈置表的頁面上時, 會出現 NOT 游標,讓您無法執行拖放。
如果要從「頁面資料」視圖中執行拖放,請先從選用區中選取「文字資料格」,之後,在自由佈置表中新增文字資料格。 之後,再從「頁面資料」視圖中拖放至這個文字資料格中。
當您試著部署 Web 應用程式(具備 SDO 特性), 以使用驅動程式管理員連線來存取關聯式資料庫時, 並不會自動將驅動程式 JAR 新增至伺服器的類別路徑中。 這會造成 ClassNotFound 錯誤。
目前,每當應用程式存取 Cloudscape、DB2、SQL Server 和 Oracle 等關聯式資料庫時,依預設,會建立資料來源連線。至於任何其他資料庫, 尤其是 Informix 和 Sybase,便會建立驅動程式管理員連線,且會出現上述問題。
如果要使驅動程式管理員連線能夠運作,您必須手動將驅動程式 JAR 路徑新增至伺服器的類別路徑中。其做法是執行伺服器的「管理主控台」, 並在伺服器 ->應用程式伺服器-><serverName>->Java 和程序管理->程序定義->Java 虛擬機器 ->類別路徑下新增類別路徑項目,來完成這項作業
目前為止,本產品尚無法使用每一份「關聯式資料清單」來產生更新方法。以下是可放在您的動作中,以便更新 myList 資料清單之內容的程式碼
try { getMyListMediator().applyChanges((DataObject)((ECoreEList)getMyList()).getEObject()); } catch (Throwable e) { logException(e); }
如果您的 JDBC 伺服器是以任何非供應商預設值來執行,您必須在最初建立 SDO 執行時期連線時修改它。
當一項 Web 專案將目標從 WAS 第 5 版伺服器重設為 WAS 第 6 版伺服器,有時不會刪除 WEB-INF/lib/wdo_web.jar。 它在 WAS 第 6 版伺服器上無效,在 Web 專案中重新產生用戶端物件時,它可能會造成問題(如果您遵循移轉手冊「移轉含 Faces 用戶端元件的 JavaServer Faces 資源」一節中的步驟)。
如果要避免這些問題,請從 lib 資料夾中刪除這個 JAR 檔。 刪除好之後,請開啟 Web 專案的 web.xml 檔,移除參照這個 JAR 檔的 taglib 標示。 您可以從 Web 部署描述子編輯器的「變數」或「程式碼」頁面中移除它。 這個 taglib 的 URI 是 http://www.ibm.com/websphere/wdo/core。 然後,在「專案瀏覽器」視圖中選取 Web 專案,再從它的蹦現功能表中選取「內容」。 然後選取 Java 建置路徑,並從「程式庫」頁面中, 移除所有 WDO_EMF_JARS_PATH/* 類別路徑項目。
如果您利用關聯式記錄來建立 JSP 頁面,且這個關聯式記錄使用以 5.1 版伺服器為目標的「自動產生金鑰」, 可能會出現下列錯誤:
2 cvc-complex-type.2.4.d: 找到起始於 'tables' 元素的無效內容。這時不預期有任何子項元素。
此錯誤訊息為無效的,您可以忽略它。
如果您正以預設鑑別(以登入使用者的身分執行)將 WebSphere Application Server 當作一項服務來執行, 且試圖在 Web 應用程式內連接到 DB2,但沒有提供使用者名稱和密碼,可能會出現下列錯誤:
java.sql.SQLException: [IBM][CLI Driver] SQL0567N "SYSTEM" 不是有效的授權 ID。SQLSTATE=42602 DSRA0010E: SQL 狀態 = 42602,錯誤碼 = -567
如果要避免這個情況, 請提供使用者 ID 和密碼給應用程式, 或將 WAS 設定成使用有權存取您 DB2 安裝環境的使用者帳戶明確執行(例如,提供使用者 ID 和密碼)。
如果您關閉變動過的(未確定的變更)JSP, 且您在出現提示後儲存 JSP, 您對 WDO/SDO 配置檔所進行的未確定變更可能不會儲存。
若要避免此問題,請在配置關聯式記錄或記錄清單後, 按 CRTL+S 或按一下檔案-->儲存, 以確定您已儲存 JSP。
如果您將建立成要在 WebSphere 5.1 版伺服器上執行的 WDO 應用程式, 移轉成在 Websphere 6.0 版伺服器上執行,則會發生此問題。在此情況下, 當您的 Faces 頁面有一個內含多個過濾條件子句的記錄或記錄清單時, 當頁面在伺服器上執行時即可能擲出下列的異常狀況:
java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.emf.ecore.impl.DynamicEObjectImpl.dynamicGet(DynamicEObjectImpl.java:192) at org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDelegateSingleData.dynamicGet(EStructuralFeatureImpl.java:1758) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eDynamicGet(BasicEObjectImpl.java:485) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:476)e at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java(Compiled Code)) at com.ibm.etools.webtools.sdo.runtime.internal.MapDataObjectImpl.getValue(MapDataObjectImpl.java:197) at com.ibm.etools.webtools.sdo.runtime.internal.MapDataObjectImpl.put(MapDataObjectImpl.java:162) at pagecode.PageCodeBase.resolveParams(PageCodeBase.java:189)
此問題發生在調解者的參數物件中。
若要修正此問題,您必須正確設定調解者的參數物件。 其做法是將您的 getList 或 getRecord 方法
從:
public DataListAccessBean getList1() { if (list1 == null) { try { resolveParams(getList1Mediator().getParams(), list1ArgNames, list1ArgValues, "list1_params_cache"); DataGraphAccessBean graph = getList1Mediator().fetchGraph(); list1 = graph.getDataListAccessBean(); } catch (Throwable e) { logException(e); } } return list1; }
修改為:
public DataListAccessBean getList1() { if (list1 == null) { try { getList1Mediator().setParams( new MapDataObjectImpl(((EObject) new MediatorImpl( (Metadata) getList1Mediator().getMetadata(), new NullConnectionWrapper()) .getParameterDataObject()).eClass())); resolveParams(getList1Mediator().getParams(), list1ArgNames, list1ArgValues, "list1_params_cache"); DataGraphAccessBean graph = getList1Mediator().fetchGraph(); list1 = graph.getDataListAccessBean(); } catch (Throwable e) { logException(e); } } return list1; }
請記下設有參數物件的程式碼片段。
如果選取預設伺服器,當在伺服器中執行期間, 將無法在伺服器上正確配置資料來源。若要確保資料來源的設定適當地,請勿選取預設伺服器。 一旦您的應用程式發佈成功, 只要您沒有對資料來源進行任何變更, 即可選取預設伺服器。
記錄/清單的重新命名綱目動作並不會更新唯一金鑰表格綱目名稱。
暫行解決辦法是找出儲存記錄/清單查詢的 XML 檔,並更新唯一金鑰表格綱目名稱。