DADX 向导支持从一个或多个 SQL 语句、存储过程和 DAD 文件创建 DADX 文件。DADX
文件是用来创建访问关系数据库的 Web Service 的 XML 文件。“DADX 文件”向导将在 Web 项目的 DADX 组中创建 DADX 文件。
先决条件:
- 在创建 DADX 文件之前,需要创建 DADX 组,如在下面的主题中所述:创建 DADX 组配置。
- SQL 语句或存储过程必须存在于工作台中才能完成 DADX 向导。有关创建 SQL 语句或存储过程的更多信息,请参阅相关任务,例如,处理 SQL 语句。
- 如果要从包含参数的 SQL 语句生成 DADX 文件,则这些参数必须在简单列表达式中以便在 DADX 文件中正确生成参数类型。如果参数在复杂列表达式(例如,函数)中,则您必须手工将它们添加至生成的 DADX 代码。这是一个已知问题。
“文档访问定义”(DAD)文件是用户指定的文件,它提供对 XML 文档元素至 DB2
® 数据库列的映射的控制以便进行存储或检索。DADX 向导只支持
Xcollection DAD。DADX 向导支持的映射和操作类型如下:
- SQL 语句操作(支持基于 SQL 语句的查询和更新操作)
- RDB_node 映射(支持基于 DAD 文件映射的 storeXML 和 retrieveXML 操作)
- 存储过程调用
如果您选择的 DAD 文件定义 SQL 语句(SQL_stmt)映射,则可能需要定制
SQL_override 信息以指定想要从 SQL 主变量覆盖的参数。有关更多信息,请参阅 http://publib.boulder.ibm.com/infocenter/db2help/index.jsp 并查看“开发”>“数据库应用程序”>“Web Service 和联合 Web 应用程序”。
要生成 DADX 文件:
- 单击。
- 在“新建”窗口中,展开 Web Service 节点,然后单击 DADX 文件,接着单击下一步。
- 在“DADX 生成”页面上:
- 为 DADX 文件的输出位置选择 Web 项目和 DADX 组。 为了使 Web Service 正常运行,必须在 DADX 组中创建 DADX 文件。必要时,可以在别处不使用向导生成它,以后再将它移至 DADX 组;但建议在生成它时就把它放在 DADX 组中。
- 输入新 DADX 文件的名称并可选择输入描述。
- 选择使用“动态查询服务”或从一系列 SQL 查询或存储过程创建 DADX 文件。
- 如果选择使用“动态查询服务”,则单击完成。这就会生成具有 <DQS/> 操作标记的 DADX 文件。
- 如果选择从一系列 SQL 查询或存储过程创建文件,则单击下一步。
- 选择要包括在 DADX 文件中的 SQL 语句和存储过程。 可以只选择 SQL 语句、只选择存储过程或同时选择 SQL 语句和存储过程。SQL 语句或存储过程必须存在于工作台中。单击下一步或完成。
- (可选)使用此页面来选择一个或多个要包括在 DADX 文件中的 DAD 文件:
- 要从文件系统导入 DAD 文件,单击导入文件。
- 在工作台文件列表中,单击 DAD 文件然后单击 >。 重复此步骤以添加更多 DAD 文件。
- 要从选择的文件列表中除去一个或多个 DAD 文件,单击
< 或 << 按钮。
- 在将所有必需的 DAD 文件添加至列表选择的文件后,单击下一步
注: 必须创建 DADX 文件或将其导入 DADX 组:WebProject\JavaSource\groups\DADXGroup。任何相关
DAD 文件也都需要处于此文件夹中。在运行时,这是这些文件所应处于的位置。否则,可能会发生数据库或服务器错误。
- (可选)通过选择行然后选择要修改的单元格,对操作或描述字段修改或添加文本。输入更改并按 Enter 键。 操作字段为所生成
DADX 文件中的操作标记的 name 属性提供名称,描述字段为文档标记提供描述文本。单击完成。
将生成 DADX 文件并在 XML 编辑器中打开它,在那里,您可以根据需要对其进行编辑。如果选择使用“动态查询服务”,则会将
db2WebRowSet.xsd 文件复制至 WebContent 目录。
注: 对于基于存储过程的
DADX 文件,会为 DADX 生成结果集元数据并在调用元素中使用。只有从 DADX
调用拥有具有固定元数据的结果集的存储过程才能拥有 Web Service 的严格定义的 WSDL 文件。
<result_set_metadata> 元素是用 DADX 为存储过程返回的每个结果集生成的。即使这些元素共享相同的元数据特征也是这样。如果您想使用单个 <result_set_metadata> 标记,则可以通过修改生成的代码来实现。如果修改元数据名称而在 <call> 元素的 <result_set> 子元素中使用该元数据,则确保修改它在相应 <result_set_metadata> 定义中的名称。