4

我使用 WSDL 创建了一个 OSB 服务并选择了一个绑定。现在,当我的客户尝试使用我提供的 WSDL 调用服务时,他们会遇到错误。此外,我提供的 WSDL 中的绑定名称与他们从 URL 中提取的 WSDL 不同。怎么了?

4

1 回答 1

4

根据 OSB 文档,

当您基于 WSDL 资源创建服务时,您必须将服务基于 WSDL 端口或 WSDL 绑定:

  • 当您基于 WSDL 资源中的绑定创建新服务时,您选择的是在 WSDL 资源的选定元素中定义的协议和数据格式。
  • 当您基于 WSDL 资源中的端口创建新服务时,您正在选择元素中定义的绑定和网络地址。

创建或修改服务时,您可以更改传输方式,但不能覆盖数据格式。

来自原始 WSDL 资源的端口和绑定定义在有效 WSDL 中根据许多因素进行修改,如下所述。

如果服务基于绑定:

  • 如果服务是从 WSDL 资源中的绑定 Y 生成的,那么有效的 WSDL 将定义一个新的服务和端口(QSService 和 QSPort)。WSDL 资源中定义的任何端口都不包含在有效的 WSDL 中。
  • 该 WSDL 中可能有多个端口与该绑定相关联。每个端口可以使用不同的 URL。因此,有效的 WSDL 使用该绑定,但会根据该绑定的服务配置生成一个人工端口。所有其他端口都将被删除。”</li>

粗体部分是导致问题的原因。使用端口而不是绑定总是更好,因为 OSB 会修改有效的 WSDL,如上所述。

于 2013-12-18T22:25:11.187 回答