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