WSDL、端點及訊息

WSDL 是描述 Web 服務的「Web 服務定義語言」檔案。新的服務必須利用 WSDL 來決定要求和回應的結構。針對遠端服務,它們包含可存取該服務的位置。對於遠端和本機 (託管) 服務,該檔案會包含每個 Web 服務的定義,包括名稱、引數、例外,以及輸入和輸出訊息的結構。

在 Oracle Serivce Oriented Architecture (SOA) 中,WSDL 可被分類為「服務」或「參考」。服務是由 SOA 伺服器託管;亦即,Web 服務的實作位於本機應用程式伺服器上。受參考的服務則會在不同的伺服器上實作。這種區別也與複合層級相關。服務會在目前的複合中實作。參考則會位於其他位置,可能會在相同的應用程式伺服器上,但會位於不同的複合中。

「端點」只是 Web 服務的 URL。由於 Web 服務會藉由 HTTP 來通訊,因此每個服務都有唯一的 URL。得知服務的端點之後,即可將訊息服務的目標設定為該服務。

如何尋找 WSDL 和端點

在已安裝的轉接器中尋找 WSDL 的方法有兩種:透過 Enterprise Manager 和使用直接 URL。只有「受託管」的 WSDL 才能用這種方法尋找。對於受參考 (遠端) 的 WSDL,則必須在原始程式碼中尋找,或是從託管位置取得。

如何使用 Enterprise Manager 來尋找 WSDL 和端點:

  1. 開啟 Enterprise Manager,然後使用導覽窗格開啟所需複合的操作面板。

  2. 「操作面板」的頂端列包含數個按鈕和圖示。其中一個是上面有塊拼圖的「地球」圖示。按一下此圖示即可顯示該複合的 WSDL 和端點 URI。

  3. 按一下 URL 連結即可在瀏覽器中查看 WSDL,或是按一下滑鼠右鍵,將它儲存到您的機器中以用於開發新服務。

    視您的需求而定,您可能需要下載相關聯的結構或 WSDL 檔案。結構在 WSDL 的 "types" 元素中。您可以在 import 元素內尋找相關聯的 WSDL URL。將該 URL 貼到瀏覽器頁籤中。

    此視窗也會顯示服務的端點。這就是應新增至訊息寄送方組態中的 URL。例如:

    您可以從服務的 WSDL 取得「HTTP 標頭」/「SOA 動作」的值。尋找要叫用之 Web 方法的 wsdl:definitions/wsdl:binding/wsdl:operation/soap:operation 元素。名為 soapAction 的屬性會包含此欄位的值。若要快速找到此欄位,請使用 Enterprise Manager 的「測試」架構 (請尋找複合之操作面板檢視的「測試」頁籤)。剖析 WSDL 後,「SOAP 動作」會顯示在要求頁籤的欄位中:

    HTTP 登入使用者HTTP 登入密碼值應設為可存取模組的有效 WebLogic 使用者。HTTP 方法應一律設為 POST,且 HTTP URL 1 應設為上述端點的值。

如何使用直接 URL 來尋找 WSDL 和端點

只要瞭解 WSDL 在 SOA 伺服器上使用的路徑,即可在不使用 Enterprise Manager 的情況下存取 WSDL。一般而言,該路徑的格式為:

http://{server name}:{port number}/soa-infra/services/{partition}/{Composite}/{Web Service}