2013-03-20 92 views
1

在我的流程中,我有一個肥皂客戶端調用服務。由於我們正在使用服務中的3個不同操作,因此我想動態填充Mule soap組件中「客戶端屬性」下的「操作」字段。我的方式是正確的,現在的工作是:騾子動態設置肥皂操作

start flow -> message transformation -> choice flow control (based on the message type) 
choice 1. sub flow A -> soap client with operation A 
choice 2. sub flow B -> soap client with operation B 
choice 3. sub flow C -> soap client with operation C 

我想是動態地在運行時設置基於消息的「操作」字段,而不能有三種不同的子流程。

start flow -> message transformation -> set the operation field -> soap client with the correct operation 

這可能嗎?使用Mule CE 3.3.1。提前致謝。

+0

你是什麼意思的「Mule肥皂成分」?它是'cxf:jaxws-client'嗎? – 2013-03-28 22:27:11

+0

是的,確切地說。我想在運行時更改cxf:jaxws-client操作屬性,因爲我們是來自同一服務的3個不同操作。 – techRunner 2013-03-29 14:18:46

回答

2

爲了實現自己的目標:

  • cxf:jaxws-client元素中取出operation屬性,
  • 添加設置操作爲出站消息財產cxf:jaxws-client元素之前:

    <set-property propertyName="operation" value="#[...]" /> 
    

    其中#[...]表示從消息中提取操作名稱的MEL表達式。

+0

謝謝大衛,像魅力一樣工作。我根據消息類型在頭文件中設置操作屬性,然後根據您的建議,用MEL提取操作值並將其設置如下:''現在我只有一個子流程完成所有三個操作,完美,再次感謝。 – techRunner 2013-03-29 21:33:44

+0

很好用!建議:使用MEL而不是舊式/棄用的表達式語法,即:'' – 2013-03-29 21:44:17

+0

是的,好建議。我會改變它並測試它。謝謝。 – techRunner 2013-03-30 15:50:52