如何在Oracle Service Bus中使用WSDL?

时间:2013-12-18 22:25:11

标签: soap wsdl osb oracle-service-bus

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

1 个答案:

答案 0 :(得分:3)

根据OSB文档,

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

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

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

原始WSDL资源中的端口和绑定定义在有效WSDL中进行了修改,具体取决于许多因素,如下所述。

如果服务基于绑定:

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

大胆的部分是造成问题的原因。最好使用 port 而不是绑定,因为OSB修改了有效的WSDL,如上所述。