Web 工具 - 发行说明


1.0 局限性
   1.1 从“页数据”视图拖放到自由布局表中时出现问题
   1.2 使用 SDO 部署 Web 应用程序,以使用指向 Websphere V6 服务器的驱动程序管理器连接来访问数据库时出现问题
   1.3 用于 SDO 关系记录列表的更新方法
2.0 已知问题
   2.1 SDO 对 JDBC 连接使用缺省端口号
   2.2 将 Web 项目的目标从 WAS V5 重新定为 WAS V6 时未删除 wdo_web.jar
   2.3 自动生成键时产生无效错误消息
   2.4 WAS 作为服务运行必须使用对 DB2 具有访问权的标识来运行
   2.5 保存 JSP 页面可能不会保存 SDO/WDO XML 文件
   2.6 具有多个过滤器的关系记录/列表可能在 WAS 6 服务器上不起作用
   2.7 如果为项目选择缺省服务器,则可能不创建 SDO 数据源
   2.8 关系记录/列表的重命名模式操作不更新唯一键表模式名称

1.0 局限性

1.1 从“页数据”视图拖放到自由布局表中时出现问题

当您尝试从“页数据”视图拖放到包含自由布局表的页面上时,将显示 NOT 光标,使得不可能执行拖放操作。

要从“页数据”视图执行拖放,先从选用板中选择“文本单元格”,然后在自由布局表中添加“文本单元格”。然后,从“页数据”视图拖放到“文本单元格”中。

1.2 使用 SDO 部署 Web 应用程序,以使用指向 Websphere V6 服务器的驱动程序管理器连接来访问数据库时出现问题

当您尝试使用 SDO 功能部件部署某个 Web 应用程序,而该应用程序使用驱动程序管理器连接来访问关系数据库时,驱动程序 JAR 不会自动添加至服务器的类路径。从而导致 ClassNotFound 错误。

目前,在缺省情况下,每当应用程序访问下列关系数据库时都会创建数据源连接:Cloudscape、DB2、SQL Server 和 Oracle。但是对于任何其它数据库,特别是 Informix® 和 Sybase,将创建驱动程序管理器连接并且会出现上述问题。

要让驱动程序管理器连接起作用,用户必须手动将驱动程序 JAR 路径添加至服务器的类路径。要这样做,请运行服务器的“管理控制台”并在服务器 -> 应用程序服务器 -> <serverName> -> Java 和进程管理 -> 进程定义 -> Java 虚拟机 -> 类路径下添加类路径条目

1.3 用于 SDO 关系记录列表的更新方法

产品目前不生成更新方法以用于更新每个“关系数据”列表。以下是可放在操作中的代码,可用来更新名为 myList 的数据列表的内容。

try { getMyListMediator().applyChanges((DataObject)((ECoreEList)getMyList()).getEObject()); } catch (Throwable e) { logException(e); }

2.0 已知问题

2.1 SDO 对 JDBC 连接使用缺省端口号

如果 JDBC 服务器不在供应商指定的缺省端口上运行,则在第一次创建 SDO 运行时连接时需要修改它。

2.2 将 Web 项目的目标从 WAS V5 重新定为 WAS V6 时未删除 wdo_web.jar

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/* 类路径条目。

2.3 自动生成键时产生无效错误消息

如果使用关系记录(该记录使用目标为 V5.1 服务器的自动生成键)创建 JSP 页面,可能遇到以下错误:

2 cvc-complex-type.2.4.d:从元素“tables”开始出现无效内容。此处不应有任何子元素。

该错误消息是无效的,可以忽略它。

2.4 WAS 作为服务运行必须使用对 DB2 具有访问权的标识来运行

如果使用缺省认证将 WebSphere Application Server 作为服务运行(作为登录用户运行)并尝试在未提供用户名和密码的情况下在 Web 应用程序中连接至 DB2,可能会遇到以下错误:

java.sql.SQLException:[IBM][CLI 驱动程序] SQL0567N “SYSTEM”是无效授权标识。SQLSTATE=42602 DSRA0010E:SQL 状态 = 42602,错误代码 = -567

为避免此问题,向应用程序提供用户标识和密码或将 WAS 设置为作为对 DB2 安装具有访问权的用户帐户来显式运行(例如,提供用户标识和密码)。

2.5 保存 JSP 页面可能不会保存 SDO/WDO XML 文件

如果关闭脏(未提交更改)的 JSP 并且在提示后保存 JSP,则 WDO/SDO 配置文件的未提交的更改可能被保存。

要避免此问题,请确保在配置关系记录和记录列表之后,按 CRTL+S或单击文件 -> 保存来保存 JSP。

2.6 具有多个过滤器的关系记录/列表可能在 WAS 6 服务器上不起作用

此问题发生在 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; }

请注意设置参数对象的代码片段。

2.7 如果为项目选择缺省服务器,则可能不创建 SDO 数据源

如果已选择缺省服务器,则在服务器上运行期间数据源将不会在服务器上获得正确配置。要确保正确设置数据源,请不要选择缺省服务器。一旦成功发布了应用程序,只要不对数据源做任何更改,您就可以选择缺省服务器。

2.8 关系记录/列表的重命名模式操作不更新唯一键表模式名称

记录/列表的重命名模式操作不更新唯一键表模式名称。

要变通此问题,请查找存储记录/列表的查询的 xml 文件并更新唯一键表模式名称。

返回到主自述文件