【问题标题】:How WSDL is Used in Oracle Service Bus?Oracle Service Bus 中如何使用 WSDL?
【发布时间】:2014-01-07 07:34:52
【问题描述】:

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

【问题讨论】:

    标签: soap wsdl osb oracle-service-bus


    【解决方案1】:

    根据 OSB 文档,

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

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

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

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

    如果服务基于绑定:

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

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

    【讨论】:

    • oracle doc sn-p 中的更正: - 当您基于 WSDL 资源中的绑定创建新服务时,您选择的是在选定的 元素中定义的协议和数据格式在 WSDL 资源中。 - 当您基于 WSDL 资源中的端口创建新服务时,您选择的是 元素中定义的绑定和网络地址。
    猜你喜欢
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    相关资源
    最近更新 更多