2013-05-15 104 views
0

我有一個調用外部Web服務的Mule應用程序。在調用此Web服務之前,我必須調用會話密鑰Web服務來檢索會話密鑰以發送給原信號目標Web服務。此會話密鑰服務每次輸入與登錄相同的公司名稱參數,並在每次調用10分鐘時返回一個唯一字符串。每個Web服務呼叫都必須使用一個唯一的密鑰,並且不能同時使用兩個密鑰。在Mule中創建會話密鑰池

所以這些會話密鑰不能被任何東西鎖住,因爲只有1個登錄,但是對於1次登錄只有多個不同的會話密鑰。

我一直在尋找Apache Commons Pool for this,更具體地說 - GenericObjectPool並不需要每個會話密鑰都是有效的密鑰。

但我正努力以一種很好的方式將它與Mule融合在一起。我已經使用Spring進行了設置,並且我必須實現的接口指示我將所有的http請求和轉換等與Java代碼中的外部Web服務聯繫起來。但理想情況下,我想爲此使用Mules核心運輸和變壓器。

什麼是構建這個最好的方法?

創建一個攔截器?

注入傳輸到我的自定義代碼?

或者有沒有更好的方法來做簡單的非鍵控池,更適合Mule?

任何指導讚賞。

回答

1

您可以讓您的泳池對象工廠直接使用騾運輸或通過MuleClient與您的流程交互。

如果您製作Spring bean MuleContextAware,您將收到一個MuleContext,您將從中獲得一個帶有getClient()的Mule客戶端。

+0

感謝大衛的迴應。我不知道我跟着。我不需要從我的流中調用我的java類的方法。實際上是另一種方式:我需要從我的Java代碼中調用Mule端點或變換器來填充會話密鑰池,並在密鑰過期時更新池等。如果這有意義嗎? –

+0

嘿,回顧我的答案。 –

+0

謝謝,我實際上一直在閱讀您的書,並擔心將我的組件與Mule的內部組件結合在一起。 MuleClient/MuleContextAware是最好的「壞」嗎? –