2016-07-11 86 views
0

目前我正在使用JDeveloper 11開發帶OSB的ws。 我有一個簡單的Web服務,它調用一個外部SOAP服務。在公開的SOAP服務中執行Oracle Service Bus多操作

我composite.xml文件:

enter image description here

  1. 我BPEL SOAP服務的運營

  2. 遠程SOAP服務的

    操作

  3. BPEL組件

我對當前的發展戰略有幾個問題。 我應該如何向BPEL SOAP添加新的操作?我通過編輯ApusBPELProcess.xsd(添加了新的請求和響應類型)和ApusBPELProcess.wsdl(添加了新的操作,消息等),添加了一個新方法(getCompanyDetails())。 這是添加新操作的正確方法嗎?

現在我只能通過使用BPEL結構中的「Invoke」組件調用遠程SOAP服務的一個方法。

我BPEL設計:

enter image description here

我怎麼能說從我的BPEL肥皂(1)結合的方法,從遠程服務(2)的方法?例如:當客戶端從我的BPEL Soap(1)調用方法process時,我想對輸入參數進行一些驗證,然後從遠程SOAP(2)調用getServiceCompanies。因此,當客戶端從BPEL Soap(1)調用另一個方法時,我想調用遠程SOAP(2)上的其他方法。

非常感謝,如果有人能給我看一個圖表和所需的組件。因爲我讀過「Mediator」組件,但我不知道如何在當前情況下使用它們。

在此先感謝。

回答

0

我找到了Mediator組件的解決方案。也許它會幫助別人。

好的,我在我公開的服務和遠程服務之間添加了一個Mediator組件。 Mediator組件將在這兩個服務之間請求路由和數據轉換。對於我公開的服務中的每個方法,我都向另一個Mediator端點添加了一個BPEL流程(我將在這些BPEL流程中執行一些特定於方法的驗證/其他邏輯)。

我的最終組合。XML:

我公開的服務
  • 中保
  • 遠程服務的
    1. 方法我稱之爲

    enter image description here

    裏面中介構件我做的路由和轉換。對於我公開的服務的每種方法(1),我在調解人(2)中有一個路由規則。

    中介構件規則:

    4A,4B - 按鈕添加新的路由規則 4D - - 我公開的服務 4c的方法按鈕添加轉換規則(一般你將有一個一對轉換規則方法 - 請求/響應)

    enter image description here

    轉換文件是做兩個端點之間的信息轉換的交互的.xsl文件。

    我的.xsl文件:一個的.xsl文件的

    enter image description here

    內容:

    在這裏,我通過響應數據做迭代(換每個組件)。

    enter image description here

    最後內部的各BPEL過程的我有一個「調用」組分(5),其調用所述遠程服務的適當的方法。

    enter image description here

    希望它的人。祝你好運!

  • 2

    一種選擇是,對於BPEL服務公開的每個操作,您都可以使用可以具有多個onMessage分支的Pick活動。 同樣,Invoke活動可以選擇您需要調用的遠程SOAP服務的操作。 因此,您的組合將看起來像Pick活動與選擇BPELoperation1的OnMessage分支,然後邏輯進行驗證,然後調用remoteoperation1selcted.And另一個選擇BPELoperation2 onMEssage分支,邏輯做驗證和調用與remoteoperation2選擇。

    +0

    感謝您的評論。是的,我同意這是一個選項。但我需要一箇中介變體。 – 0bj3ct

    相關問題