2014-03-25 32 views
1

我有一個Mule流,它在數據庫中查找一個值並以地圖格式返回結果,如ArrayList。然後在進行數據庫調用以檢查響應之後,我直接記錄有效負載。良好的反應的一個例子是:Mule - 在ArrayList爲空時做些什麼

org.mule.api.processor.LoggerMessageProcessor: [{ID=1234567, NAME=Test}] 

我想包括在我的流程來處理響應的下一階段選擇元素,其中沒有記錄發現,這是這樣的:

org.mule.api.processor.LoggerMessageProcessor: [] 

在這種情況下,我將使用哪個表達式來指示流程?我試過#[payload==''],#[payload=='[]'#[payload==null]沒有成功。提前致謝。

回答

4

我剛剛發現了這個答案。檢查負載大小,像這樣:

<when expression="#[payload.size()==0]"> 
    ... 
</when> 

,我仍然有興趣在聽,如果有這樣做的更好/替代方法...

+0

我試過相同的,但我得到異常執行表達式「#[message.payload.size()== 0]」失敗。 (org.mule.api.expression.ExpressionRuntimeException)。消息有效負載的類型爲:LinkedList?我該如何解決這個錯誤。 – vashishth

+0

您是否試過'#[payload == empty]'而不是? – danw

1

#[payload == empty]檢查空負載

0

轉換對象到XML和篩選與#[payload != '<linked-list/>']