需要哪些WSDL元素(Oracle SOA Suite)

时间:2012-03-30 08:18:47

标签: wsdl soa jdeveloper soa-suite

我正在尝试理解由SOA Projects中的JDeveloper生成的.wsdl文件。我注意到它们往往只包含类型,portType和消息元素,但不包含服务或绑定元素。

然后我在http://schemas.xmlsoap.org/wsdl/检查了WSDL Schema定义,发现绑定和服务都是wsdl定义元素的“关键”元素。这是否意味着服务和绑定是必需元素?如果是这样,为什么它们不包含在JDeveloper / SOA Suite WSDL文件中?

[更新]

O.k。我找到了一个问题的部分答案。事实证明,当您通过URL访问WSDL文件时,绑定和服务元素都包含在内。

任何人都可以提供有关以下内容的更深入的背景信息:

  1. 这是怎么发生的?
  2. 为什么要这样做?
  3. 如果(2)是因为您希望从开发人员那里隐藏WSDL的具体定义并由SOA Suite动态处理:这个动态绑定如何工作并在实际应用程序中使用的具体示例......?

1 个答案:

答案 0 :(得分:3)

您看到生成的是抽象WSDL,它是从功能角度看所需的最小值。数据类型,操作等都在那里。

您正在寻找的是具体定义如何访问特定服务(位置,协议等)的具体WSDL。从SOA Suite角度来看,这更多是配置/部署问题。

简要回答你的问题;

  1. 如果客户端需要具体的WSDL,SOA Suite会根据需要生成具体的WSDL定义(这是WS绑定规范要求的)。如果客户端根据此具体WSDL进行调用,则SOA Suite知道如何解析对您的服务的调用。
  2. 基本上,您只需定义服务的功能部分,并保留有关访问SOA Suite的详细信息。毕竟,这些高度依赖于部署细节。因此,您的服务与物理细节变得更加分离。
  3. 这是SCA的做事方式。从消费者的角度来看,体验并没有真正的不同。他们可以像查看任何其他服务一样查找具体的WSDL。
  4. 从开发人员的角度来看,人们应该记住我们处于SCA世界。在SCA域内,绑定用于公开服务或在复合内部引用它们。只有当人们想要在SCA域之外公开服务时,这些绑定才会转换为传统的WS标准。

    有关更多信息,您可以在OASIS上看到WS绑定标准。 http://docs.oasis-open.org/opencsa/sca-bindings/sca-wsbinding-1.1-spec.pdf