2012-03-30 40 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