当您尝试从“页数据”视图拖放到包含自由布局表的页面上时,将显示 NOT 光标,使得不可能执行拖放操作。
要从“页数据”视图执行拖放,先从选用板中选择“文本单元格”,然后在自由布局表中添加“文本单元格”。然后,从“页数据”视图拖放到“文本单元格”中。
当您尝试使用 SDO 功能部件部署某个 Web 应用程序,而该应用程序使用驱动程序管理器连接来访问关系数据库时,驱动程序 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 V5 服务器重新定为 WAS V6 服务器时,有时不会删除 WEB-INF/lib/wdo_web.jar。它在 WAS V6 服务器上无效,并且如果您遵循《迁移指南》的『迁移带有 Faces Client 组件的 JavaServer Faces 资源』一节中的步骤,则在 Web 项目中重新生成客户机端对象时可能出现问题。
要避免这些问题,从 lib 文件夹中删除此 JAR 文件。在删除它之后,打开 Web 项目的 web.xml 文件并除去引用该 JAR 文件的 taglib 标记。可从 Web 部署描述符编辑器的“变量”或“源代码”页中除去它。此 taglib 的 URI 为 http://www.ibm.com/websphere/wdo/core。然后,在“项目浏览器”视图中选择 Web 项目并从其弹出菜单中选择“属性”。然后选择 Java 构建路径并从“库”页面除去所有 WDO_EMF_JARS_PATH/* 类路径条目。
如果使用关系记录(该记录使用目标为 V5.1 服务器的自动生成键)创建 JSP 页面,可能遇到以下错误:
2 cvc-complex-type.2.4.d:从元素“tables”开始出现无效内容。此处不应有任何子元素。
该错误消息是无效的,可以忽略它。
如果使用缺省认证将 WebSphere Application Server 作为服务运行(作为登录用户运行)并尝试在未提供用户名和密码的情况下在 Web 应用程序中连接至 DB2,可能会遇到以下错误:
java.sql.SQLException:[IBM][CLI 驱动程序] SQL0567N “SYSTEM”是无效授权标识。SQLSTATE=42602 DSRA0010E:SQL 状态 = 42602,错误代码 = -567
为避免此问题,向应用程序提供用户标识和密码或将 WAS 设置为作为对 DB2 安装具有访问权的用户帐户来显式运行(例如,提供用户标识和密码)。
如果关闭脏(未提交更改)的 JSP 并且在提示后保存 JSP,则 WDO/SDO 配置文件的未提交的更改可能不被保存。
要避免此问题,请确保在配置关系记录和记录列表之后,按 CRTL+S或单击文件 -> 保存来保存 JSP。
此问题发生在 WDO 应用程序中,该应用程序是创建来在 Websphere V51 服务器上运行的,而要迁移以在 Websphere V60 服务器上运行的。在此情况下,当 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 文件并更新唯一键表模式名称。