2014-04-07 27 views
1

我有一個從activemq路由到另一個activemq的駱駝流。但是,我需要評估一個表達式並將其設置爲標題。我如何做到這一點。駱駝...評估一個java表達式

<from uri="jms:queue:Q.activemq1"/> 
    <setHeader headerName="EVENT_KEY"> 
     <simple>${java.util.UUID.randomUUID().toString()}</simple> 
    </setHeader> 
<to uri="jms:queue:Q.activemq2"/> 

但標題沒有被正確設置? 如何將java.util.UUID.randomUUID().toString()值設置爲標題? pls advise

+1

儘管我已經回答了您的問題,但我可能會添加此特定用例 - 爲特定事務/事件創建一些唯一鍵是非常常見的。駱駝已經默認這樣做了。查看breadcrumbId標題,這與您的EVENT_KEY標題基本相同。 http://camel.apache.org/mdc-logging.html –

回答

4

對此使用Groovy expression語言。簡單的語言可以連接字符串和比較有效載荷的部分,但對於更多邏輯,groovy是瑞士軍刀。

<from uri="jms:queue:Q.activemq1"/> 
    <setHeader headerName="EVENT_KEY"> 
     <groovy>java.util.UUID.randomUUID().toString()</groovy> 
    </setHeader> 
<to uri="jms:queue:Q.activemq2"/> 

你需要添加一個依賴駱駝groovy使其工作。

+0

很棒。工作很好....謝謝 – user1717230