2012-03-30 30 views
0

我想了解由SOA项目中的JDeveloper生成的.wsdl文件。我注意到它们往往只包含类型,portType和消息元素,但不包括服务或绑定元素。需要哪些WSDL元素(Oracle SOA套件)

然后我检查了WSDL Schema定义http://schemas.xmlsoap.org/wsdl/并注意到binding和service都是wsdl definitions元素的'关键'元素。这是否意味着服务和绑定是必需的元素?如果是这样,那么它们如何不被包含在JDeveloper/SOA Suite WSDL文件中?

[更新]

也许。我发现我的问题部分回答。事实证明,当你通过URL访问WSDL文件时,包含绑定和服务元素。

谁能提供任何更深入的背景资料:

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

回答

3

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

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

简要回答你的问题;

  1. 如果客户端需要具体的WSDL,那么SOA Suite将根据需要生成具体的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