WSO2 ESB 和 JMS 或 AMQP 自定义属性
WSO2 ESB and JMS or AMQP custom properties
是否可以从入站 JMS and/or AMQP 消息中读取自定义 headers/property 值?这是如何实现的?我们目前在 Apache Camel 中使用 headers 进行路由,所以我需要对 WSO2 ESB 做同样的事情。谢谢。
使用这个表达式来读取你的 jms header :
get-property('transport','YOUR_JMS_HEADER_NAME')
示例:
<log level="custom">
<property name="my jms property" expression="get-property('transport', 'YOUR_JMS_HEADER_NAME')"/>
</log>
完成@Jean-Michel的回答
你必须使用 CAMEL_CASe 作为你的 header
<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 and/or AMQP 消息中读取自定义 headers/property 值?这是如何实现的?我们目前在 Apache Camel 中使用 headers 进行路由,所以我需要对 WSO2 ESB 做同样的事情。谢谢。
使用这个表达式来读取你的 jms header :
get-property('transport','YOUR_JMS_HEADER_NAME')
示例:
<log level="custom">
<property name="my jms property" expression="get-property('transport', 'YOUR_JMS_HEADER_NAME')"/>
</log>
完成@Jean-Michel的回答 你必须使用 CAMEL_CASe 作为你的 header
<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