使用 IBM SOAP 运行时环境从 DADX 文件创建 Web Service

“文档访问定义扩展”(DADX)是一个 XML 文档格式,它指定如何使用一组由 DAD 文档和 SQL 语句定义的操作来创建 Web Service。DADX Web Service 使您能够在标准 Web Service 内封装 DB2® extender 或正规 SQL 语句。DADX 文件定义了 DADX 运行时环境可用的操作以及 SQL 操作的输入和输出参数。

先决条件:
  1. 要了解并安装带有修订包 6 或更高版本的 DB2 通用数据库™个人版版本 7.2。
  2. 对于需要 DB2 XML Extender 的 DADX Web Service,要了解并安装带有修订包 6 或更高版本的 DB2 通用数据库 XML Extender V7.2。
  3. 如果要将 Apache Jakarta Tomcat servlet 容器用作服务器,则必须安装它,为它配置实例,并创建一个以它作为目标的 Web 项目,如创建 WebSphere® 服务器和 Web 项目中所述。
  4. 如果您正在使用 WebSphere 服务器,则创建一个以适当服务器为目标的动态 Web 项目,如创建 WebSphere 服务器和 Web 项目所述。因为启动 WebSphere Application Server 可能要花费几分钟时间(这取决于计算机的速度),所以强烈建议您在运行 Web Service 向导之前启动服务器。要启动服务器,在“服务器”视图(窗口 > 显示视图 > 服务器)中选择它,单击鼠标右键,然后单击启动
要了解有关创建 Web 项目的更多信息,请参阅 Web 应用程序开发文档。

使用“Web Service DADX 组配置”向导来配置数据库连接。之后,可以创建 DADX 文件。可以使用 XML 工具来创建 DAD 和 DADX 文件。要了解有关从 SQL 生成 DADX 文件的更多信息,请参阅生成 DADX 文件。还可以使用任何文本编辑器来编写 DADX 文件。然后使用 Web Service 向导来生成 WSDL 文档、部署描述符、客户机代理、属性映射、部署映射和测试 DADX Web Service,以便准备将 Web Service 发布到 UDDI 注册中心中。

“Web Service DADX 组配置”向导帮助您创建 DADX 组。DADX 组包含连接(JDBC 和 JNDI)以及组内各 DADX 文件之间共享的其它信息。创建 DADX 组后,就使用 Web Service 向导帮助创建和部署新的 Web Service。一旦完成部署 Web Service,向导帮助您生成客户机代理和样本应用程序来测试该新的 Web Service。当完成测试后,可以使用“导出”向导将 Web Service 发布到“UDDI 企业注册中心”。

要确保在 DB2 上启用了 JDBC V2.0:

  1. 停止所有 DB2 进程。
  2. 从命令提示符处运行 DB2_installdir\SQLLIB\java12 中的 usejdbc2 批处理文件。其中 DB2_installdir 是 DB2 的安装路径。
  3. 重新引导系统以重新启动 DB2。

要了解有关 DB2 的更多信息,请参阅 www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v7pubs.d2w/en_main

注意:

要了解有关使用“Web Service 资源管理器”来发布 Web Service 的更多信息,请参阅“发布 Web Service”。

创建 DADX 组

  1. 在“导航器”视图中,选择想要创建 DADX 组的 Web 项目。
  2. 单击文件 > 新建 > 其它 > Web Service 以便显示各种 Web Service 向导。
  3. 选择 Web Service DADX 组配置向导。单击下一步
  4. 选择 Web 项目。单击添加组。输入 DADX 组的名称。单击确定
  5. 展开 Web 项目以显示 DADX 组。右键单击 DADX 组。选择组属性。将 DB URL 更改为 jdbc:db2:DATABASE_NAME,其中 DATABASE_NAME 是数据库的名称。输入有权访问数据库的用户的用户标识和密码。 输入任何附加必需参数:
    上下文工厂
    当使用数据源连接至数据库时,此值指定应使用的上下文工厂类。在 WebSphere 服务器上运行时建议的值为 com.ibm.websphere.naming.WsnInitialContextFactory。
    数据源
    当使用数据源连接至数据库时,此值指定要使用的数据源名称。
    DB 驱动程序
    当使用 JDBC 连接至数据库时,此值指定要使用的数据库驱动程序类。
    DB URL
    当使用 JDBC 连接至数据库时,此值指定数据库的数据库 URL。
    用户标识和密码
    这些字段用于在通过数据源或 JDBC 连接时指定认证信息。
    名称空间表
    该字段指定 DADX 运行时应使用的名称空间表文件名。此文件定义 DTD 标识与它相关联的 XSD 名称空间和位置之间的映射。注意:仅当 DADX 文件引用 DAD 文件时才需要在此文件中建立条目。
    自动重新装入
    此字段指定 DADX 运行时是否应自动重新装入在服务器上已更改的资源(例如,DADX 文件)。
    重新装入时间间隔
    此值指定 DADX 运行时应检查已更改资源的频率(以秒计)。注意:仅当将自动重新装入设置为 true 时才使用此项。
    组名称空间 URI
    此字段指定放在与此 DADX 组中的 DADX 文件相关联的所有名称空间前面的名称空间 URL 前缀。如果使此字段保留空白,则缺省前缀是 http://tempuri.org。
    启用 XML CLOB
    此字段指定是否应使用 DB2 XML Extender CLOB 功能。当使用 DB2 XML Extender 7.2 及更高版本时,此值应当为 true。对于更旧版本,此值应当 false。
    使用文档样式
    此字段指示 DADX 运行时应使用文档样式还是 RPC 样式。true 值指示应使用文档样式。否则应使用 RPC 样式。
    单击确定
  6. 单击完成。生成的 DADX 组位于:WebProject\JavaSource\groups

从 DADX 创建 Web Service

  1. 创建 DADX 文件或将 DADX 文件导入 DADX 组中:WebProject\JavaSource\groups\DADXGroup,其中 DADXGroup 是在以上步骤中刚刚创建的组。 要点:此文件夹中也需要所有相关的 DAD 文件。在运行时,将期望这些文件位于该目录中。否则,可能会发生数据库或服务器错误。要了解有关 DAD 或创建 DADX 文件的更多信息,请参阅 XML 工具。
  2. 选择 DADX 文件。
  3. 单击文件 > 新建 > 其它。选择 Web Service 以显示各种 Web Service 向导。选择 Web Service 向导。单击下一步
  4. 在 Web Service 页面上,从 Web Service 类型下拉列表中选择 DADX Web Service。可以选择执行下列操作:
    • 启动 Web 项目中的 Web Service - 如果不选择此选项,则将必须手工启动 Web Service。必须选择此选项才能启用此页面上的其它选项。
    • 启动“Web Service 资源管理器”以将 Web Service 发布到 UDDI 注册中心。
    • 为 Web Service 生成 Java™ bean 客户机代理。生成的 Java bean 客户机代理提供了 Web Service 的远程过程调用接口。
    • 测试 Web Service - 这允许您在生成代理之前在“Web Service 资源管理器”中测试 Web Service。
    • 通过“TCP/IP 监视器”来发送 Web Service 通信量,“TCP/IP 监视器”允许您监测由 Web Service 生成的 SOAP 流量,还可以测试此流量以保持 WS-I 一致性。
  5. “服务部署配置”页面:指定服务器和客户机部署设置。
    1. 单击编辑并选择 IBM® SOAP 运行时环境,然后选择想要运行 Web Service 和 Web Service 客户机的服务器。
    2. 接受想要创建 Web Service 的缺省 Web 项目和 EAR。确保所选择的项目包含一个 DADX 组,该 DADX 组中包含 DADX 文件。 如果它们尚不存在,则向导将为您创建它们。注意:必须接受缺省项目名称,否则向导可能不能继续。
    3. 接受想要创建 Web Service 客户机的项目的类型和名称。 注意:必须接受缺省项目名称,否则向导可能不能继续。
    4. 选择现有 EAR 或输入一个唯一名称以使 Web Service 客户机与 Web Service EAR 以外的另一 EAR 相关联。注意:对 Web Service 和 Web Service 客户机选择不同的 EAR 可以减少遇到运行时错误的机会,但是将使用较多系统资源。
  6. “选择 Web Service DADX 文件”页面:输入从它创建 Web Service 的 DADX 文件的名称。
  7. “生成 Web Service 绑定代理”面板:如果已经选择了生成代理,则选择绑定和代理选项。
  8. “Web Service 客户机测试”页面:使用此页面来选择下列选项:
    • 选择测试工具。可以在“通用测试客户机”或者“Web Service 资源管理器”中测试生成的代理,也可以生成样本 Web Service JSP。
    • 如果选择通过 JSP 来测试代理,则可以选择 JSP 所在的文件夹,并且可以选择将包括在 JSP 中的方法。
    • 选择在服务器上运行测试以自动为您启动服务器。
  9. “Web Service 发布”页面:选择是否想将此 Web Service 发布至 UDDI 注册中心。单击完成
  10. 创建 Web Service 之后,根据您选择的选项不同,可能会发生下列情况:
    • 如果选择了使用 Web Service JSP 来测试生成的代理,则会在 Web 浏览器中的以下 URL 处启动代理:http://localhost: port/WebProjectClient/sampleBeanName/ WebService/TestClient.jsp。通过选择一种方法,为该方法输入一个值,然后单击调用,这样就可以使用此样本应用程序来测试 Web Service。该方法的结果将显示在结果窗格中。
    • 如果选择了使用“通用测试客户机”来测试生成的代理,则将在浏览器窗口中的以下 URL 处启动该代理:http://localhost:9080/UTC/preload?object=proxy.soap. ProxyNameProxy。在“引用”窗格中的“对象引用”下面,展开该代理以显示 Web Service 的方法。单击想要测试的方法,在“参数”窗格中输入值并单击调用。将在下面生成结果。
    • 如果选择了使用“Web Service 资源管理器”来测试 Web Service,则“Web Service 资源管理器”将打开。选择想要测试的操作,输入必需的信息并单击执行。结果将显示在“状态”窗格中。
    • 如果选择了发布 Web Service,则会启动“Web Service 资源管理器”,它将显示把 Web Service 发布到“IBM UDDI 测试注册中心”所必需的页面。遵循发布 Web Service 中的指示信息来完成此任务。
要了解有关 DB2 XML Extender 和 DADX 规范的更多信息,请参阅 www.ibm.com/software/data/db2/extenders/xmlext/library.html

如果要在远程服务器上运行 DADX,则必须手工将 worf.jarplugins/com.ibm.etools.webservice.consumption.soap_version/runtime 文件夹复制到远程机器上的某个地方。然后,必须更新远程服务器的类路径才能引用此 worf.jar 文件。

要点

  • DADX Web Service 经常返回生成的样本应用程序不能处理的复杂类型。要测试返回“DOM 元素”的方法,调用代理的“DOM 元素”方法而不是代理的 Java bean 方法。
  • 对于要用于生成 WebSphere 5.1 或 Apache Axis 客户机的 WSDL 文件中的 RPC 样式消息,不能混合 SOAP 编码与文字编码。因此,不能正确地从使用 RPC 为 DADX Web Service 生成的 WSDL 文件来创建 WebSphere V51 或 Apache Axis 客户机。要防止发生这种情况,使用 DOC 样式创建 DADX Web Service。V5.1 WebSphere 运行时可以从此 WSDL 创建客户机而不会产生问题。要使用 DOC 样式 DADX Web Service,将 DADX 组的 group.properties 文件中的 useDocumentStyle 参数设置为 true。这也可以通过 DADX 组配置向导来完成。
  • 为了提高与 Microsoft® Web Service 的互操作性,DADX 运行时现在可以生成文档样式 Web Service。要启用此功能,使用 DADX 配置向导打开要使用的 DADX 组的属性页。在该属性页的底部,确保将“使用文档样式”输入字段设置为 true。
  • DADX 模式不再将 WSDL 文档标记用于文档。此标记现在是 DADX 模式的一部分。这可能会造成未迁移以使用更新模式的旧 DADX 文件产生验证问题。例如,如果旧 DADX 文件包含以下 XML:

      <wsdl:documentation  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">     Provides queries for part order information at myco.com.   </wsdl:documentation>

      则新文档条目将是:

      <documentation>     Provides queries for part order information at myco.com.   </documentation>    

  • 如果您的方法包含样本不支持的类型(例如,数组、索引属性和集合),则这些方法将从样本中省略,并且您将接收到警告消息。
  • 当使用存储过程来创建 DADX Web Service 时,存储过程参数不能包含下划线。例如,Java 存储过程看上去可能类似如下:
     public static void test ( String class_code,
                               short day,
                               java.sql.Time starting,
                               java.sql.Time ending ) throws SQLException, Exception
    在此示例中,class_code 参数将会导致 DADX 运行时失败。要避免此问题,应使用不带下划线的参数名称。
  • 确保您选择的要转变为 Web Service 的 DADX 文件包含在 WebProject\JavaSource\groups\ DADXgroup 目录中。任何相关 DAD 文件也需要在此文件夹中。在运行时,将期望这些文件位于该目录中。否则,可能会发生数据库或服务器错误。
  • 可以从“DADX 文件”向导在 DADXGroup 文件夹中生成 DADX 文件。要了解有关创建 DADX 文件的更多信息,请参阅 XML 工具。
  • 通常,不支持 Web Service 中有多个输出。但是,如果将使用文档样式组属性设置为 true,则 DADX Web Service 支持多个输出。在此情况下,会将多个输出组合成单个 XML 文档。
  • 在 DADX 组中,可以指定 JDBC 网络驱动程序。对于 DB2,网络驱动程序类为 COM.ibm.db2.jdbc.net.DB2Driver。对于较早版本的 DB2,需要将 db2java.zip 添加至服务器类路径,此压缩文件包含驱动程序。但是,对于 DB2 版本 8.1 和更高版本,也需要将文件 db2jcc.jar 添加至服务器类路径。该文件通常与 db2java.zip 文件位于同一目录中。确保您的机器上的 DB2 客户机级别与要连接至的 DB2 服务器处于同一修订包级别。
使用条款 | 反馈
(C) Copyright IBM Corporation 1999, 2005. All Rights Reserved.