2013-03-12 62 views
0

我想在處理REST請求的開始和結束時發送JMS消息。我可以做這樣的事情:有沒有覆蓋應該返回的有效載荷而發送JMS消息的Mule慣用語?

<set-variable variableName="savedPayload" value="#[payload]" doc:name="Variable" /> 
<scripting:component doc:name="Groovy"> 
    <scripting:script engine="Groovy"> 
     <scripting:text><![CDATA[ 
      '{"event" : "TRY"}' 
     ]]></scripting:text> 
    </scripting:script> 
</scripting:component> 
<jms:outbound-endpoint queue="event.detail" connector-ref="jmsConnector" /> 
<expression-transformer evaluator="groovy" expression="savedPayload" /> 

從本質上講,JMS也只是用來記錄進入和退出(成功或失敗),同時保留保存的信息,這上面的代碼並使用一個變量。在Mule流程中做到這一點的更短暫的慣用方式是什麼?

編輯:

爲了把這個另一種方式,是有辦法來發送出站消息有效載荷不保存/恢復需要掛到響應有效載荷?

回答

1

您可以使用Async範圍。它將異步執行您的消息處理器在不同的分支中,您不必擔心保存/恢復有效負載。

<async> 
    <scripting:component doc:name="Groovy"> 
     <scripting:script engine="Groovy"> 
     <scripting:text><![CDATA[ 
      '{"event" : "TRY"}' 
     ]]></scripting:text> 
     </scripting:script> 
    </scripting:component> 
    <jms:outbound-endpoint queue="event.detail" connector-ref="jmsConnector" /> 
</async> 

更多關於異步範圍的詳細信息:http://www.mulesoft.org/documentation/display/current/Async+Scope+Reference

+0

呀,那是票。謝謝。 – 2013-03-12 15:34:58

+0

簡潔而簡潔! – Nikos 2013-03-21 17:37:36

0

嘗試使用搭線路由器。通過這種方式,您可以將paylaod傳遞給另一個頻道,您可以在該頻道修改或出站頻道,而不會影響您的主要頻道。 Mule Routers Guide

相關問題