【发布时间】:2015-03-27 14:10:21
【问题描述】:
是否可以从入站 JMS 和/或 AMQP 消息中读取自定义标头/属性值?这是如何实现的?我们目前在 Apache Camel 中使用标头进行路由,所以我需要对 WSO2 ESB 做同样的事情。谢谢。
【问题讨论】:
是否可以从入站 JMS 和/或 AMQP 消息中读取自定义标头/属性值?这是如何实现的?我们目前在 Apache Camel 中使用标头进行路由,所以我需要对 WSO2 ESB 做同样的事情。谢谢。
【问题讨论】:
完成@Jean-Michel 的回答 您必须使用 CAMEL_CASe 作为标题
<log level="custom">
<property name="jms_timestamp" expression="get-property('transport', 'JMS_TIMESTAMP')"/>
<property name="jms_message_id" expression="get-property('transport', 'JMS_MESSAGE_ID')"/>
<property name="jms_destination" expression="get-property('transport', 'JMS_DESTINATION')"/>
<property name="jms_expiration" expression="get-property('transport', 'JMS_EXPIRATION')"/>
<property name="jms_delivery_mode" expression="get-property('transport', 'JMS_DELIVERY_MODE')"/>
</log>
结果:
jms_timestamp = 1637588070662, jms_message_id = ID:AMQP_NO_PREFIX:283e7b13cbaa4ad0b8bccb2c525b6705, jms_destination = testwso2/Subscriptions/mySubscription, jms_expiration = 1638797670662, jms_delivery_mode = 1
【讨论】:
使用此表达式来读取您的 jms 标头:
get-property('transport','YOUR_JMS_HEADER_NAME')
样本:
<log level="custom">
<property name="my jms property" expression="get-property('transport', 'YOUR_JMS_HEADER_NAME')"/>
</log>
【讨论】: