0

我试图了解 JDeveloper 在 SOA 项目中生成的 .wsdl 文件。我注意到它们往往只包含类型、portType 和消息元素,而不是服务或绑定元素。

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

[更新]

好的,我找到了我的问题的部分答案。事实证明,当您通过 URL 访问 WSDL 文件时,实际上包含了绑定和服务元素。

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

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

1 回答 1

3

您看到生成的是抽象 WSDL,从功能的角度来看,这是最低要求。数据类型、操作等都在其中。

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

简短地回答您的问题;

  1. 如果客户需要具体的 WSDL,SOA 套件会按需生成具体的 WSDL 定义(这是 WS 绑定规范强制要求的)。如果客户端根据这个具体的 WSDL 进行调用,SOA Suite 知道如何解析对您的服务的调用。
  2. 基本上,您只需定义服务的功能部分并留下有关访问 SOA 套件的详细信息。毕竟,这些都高度依赖于部署细节。因此,您的服务与物理细节更加分离。
  3. 这就是 SCA 的做事方式。从消费者的角度来看,体验并没有真正的不同。他们可以像查找任何其他服务一样查找具体的 WSDL。

从开发人员的角度来看,应该记住我们处于 SCA 世界。在 SCA 域内,绑定用于公开服务或在组合内引用它们。只有当想要在 SCA 域之外公开服务时,这些绑定才被转换为传统的 WS 标准。

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

于 2012-05-17T13:55:08.073 回答