定制生成的 Web Service 描述文档

DFHLS2WS 生成的 Web Service 描述 (WSDL) 文档包含一些自动生成的内容,这些内容可能适合您在发布前进行更改。 定制 WSDL 文档可能会导致重新生成 Web Service 绑定文件,并且在某些情况下会编写包装程序。

过程

遵循以下步骤来定制生成的 Web Service 描述文档:

  1. 如果您想要宣传对 HTTPS 的支持或使用 IBM® MQ 进行通信,请使用 URIDFHLS2WS 中的参数设置绝对 URI。 如果未使用 URI 参数,那么必须在 WSDL 文档末尾更改 <wsdl:service><wsdl:binding> 元素。
    生成的 WSDL 包含用于帮助您进行这些更改的注释。 更改这些元素并不要求您重新生成 Web Service 绑定文件。
  2. 如果要提供 Web Service 的网络位置,请使用 DFHLS2WS 中的 URI 参数来设置绝对 URI。 如果未使用 URI 参数,请将详细信息添加到 wsdl:service 元素中的 soap:address
    1. 如果您使用的是基于 HTTP 的协议,请将 my-server 替换为您 CICS® 区域的 TCP/IP 主机名,并将 my-port 替换为 TCPIPSERVICE 资源的端口号。
    2. 如果使用 IBM MQ 作为传输协议,请将 myQueue 替换为相应队列的名称。
    您可以进行这些更改,而无需对 Web Service 绑定文件进行任何更改。

    如果要在不重新生成 WSBind 文件的情况下更改端口名和名称空间,那么在运行时级别 2.1 之后的监视信息可能错误。

  3. 请考虑 WSDL 文档中自动生成的名称是否适合您的用途。
    您可以重命名这些值:
    • WSDL 文档的 targetNamespace
    • WSDL 文档中 XML 模式的 targetNamespace
    • <wsdl:portType> 名称
    • <wsdl:operation> 名称
    • <wsdl:binding> 名称
    • <wsdl:service> 名称
    • WSDL 文档中 XML 模式中字段的名称。
    这些值构成对客户机程序进行编码的程序化接口的一部分。 如果生成的名称不够有意义,那么在很长一段时间内,维护应用程序代码可能会比较困难。 使用 DFHLS2WS REQUEST-NAMESPACERESPONSE-NAMESPACE 参数来更改 XML 模式的 targetNamespace ,使用 WSDL-NAMESPACE 参数来更改 WSDL 文档的 targetNamespace

    如果更改其中任何值,那么必须使用 DFHWS2LS 来重新生成 Web Service 绑定文件。 生成的语言结构将与现有语言结构不同,但与现有应用程序兼容,因此无需更改应用程序。 但是,您可以忽略新的语言结构,并将新的 Web Service 绑定文件与原始结构配合使用。

  4. 请考虑 XML 模式中公开的 COMMAREA 字段是否合适。
    您可以考虑除去对 Web Service 客户机开发者无益的任何字段:
    • 可以从映射输入数据结构的模式中除去仅用于输出值的字段。
    • 填充符字段。
    • 自动生成的注释。
    如果进行任何这些更改,那么必须使用 DFHWS2LS重新生成 Web Service 绑定文件。 生成的新语言结构与原始语言结构不兼容,因此必须编写包装程序以将数据从新表示映射到旧表示。 此包装程序需要对目标应用程序执行 EXEC CICS LINK 命令,然后映射返回的数据。

    此定制级别需要最大量的工作,但会为您的 Web Service 客户机开发者生成最有意义的编程接口。

  5. 如果要将生成的 WSDL 文档通过 DFHWS2LS 来创建新的语言结构,请决定是否保留 WSDL 文档中的注释。
    当 DFHWS2LS 生成语言结构时,注释将覆盖正常映射规则。 覆盖映射规则时,请确保生成的语言结构与 DFHLS2WS所使用的版本兼容。 如果要使用缺省映射规则来生成语言结构,请除去注释。

结果

如果要将定制 WSDL 文档发布到 IBM WebSphere® Service Registry and Repository (WSRR) 服务器,那么必须使用 WSRR 接口手动发布该文档。

示例

有关 WSDL 文档的示例,请参阅 生成的 WSDL 文档的示例