Camel…计算java表达式

Camel…计算java表达式,java,apache-camel,Java,Apache Camel,我有一个驼峰流,它从一个activemq路由到另一个activemq。但是,我需要计算表达式并将其设置为标头。我如何做到这一点 <from uri="jms:queue:Q.activemq1"/> <setHeader headerName="EVENT_KEY"> <simple>${java.util.UUID.randomUUID().toString()}</simple> </setHeader&

我有一个驼峰流,它从一个activemq路由到另一个activemq。但是,我需要计算表达式并将其设置为标头。我如何做到这一点

<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()}
但是标题设置不正确? 如何将
java.util.UUID.randomUUID().toString()值设置为标头?
请建议使用该语言。简单的语言可以连接字符串和比较有效负载的各个部分,但是对于更多的逻辑,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"/>

java.util.UUID.randomUUID().toString()
您需要向camel groovy添加依赖项才能使其正常工作。

使用该语言。简单的语言可以连接字符串和比较有效负载的各个部分,但是对于更多的逻辑,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"/>

java.util.UUID.randomUUID().toString()

您需要向camel groovy添加一个依赖项才能使其工作。

虽然我已经回答了您的问题,但我可能会添加这个特定的用例-为特定事务/事件创建一些唯一的键是非常常见的。默认情况下,Camel已经做到了这一点。查看breadcrumbId头,它本质上与您的EVENT_KEY头相同。虽然我已经回答了您的问题,但我可能会添加这个特定的用例——为特定的事务/事件创建一些唯一的键是非常常见的。默认情况下,Camel已经做到了这一点。查看breadcrumbId头,它本质上与您的EVENT_KEY头相同。