在 WSO2 ESB 的中介期间检索 ActiveMQ Header
Retrieve ActiveMQ Header during mediation in WSO2 ESB
我的 ActiveMQ 客户端在向 ActiveMQ Queue 发送消息时设置了一些自定义 header,如下所示
MessageProducer producer = session.createProducer(destination);
TextMessage message = session.createTextMessage("<Message>Test</Message>");
message.setStringProperty("ID", "XYZ");
message.setStringProperty("CODE", "COUNTRY_CODE");
producer.send(message);
在 WSO2 ESB 序列中,我试图检索 "ID" 和 "CODE" 作为
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="ID" expression="get-property('axis2', 'ID')" scope="default" type="STRING"/>
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="CODE" expression="get-property('axis2', 'CODE')" scope="default" type="STRING"/>
但这是返回空值,我什至尝试将范围设置为传输。请指教
您必须使用以下表达式,因为自定义 jms headers 存储在传输层中。
<property name="CREATE_PROXY - Config Params"
expression="get-property('transport','TRANSPORT_ID')"/>
我的 ActiveMQ 客户端在向 ActiveMQ Queue 发送消息时设置了一些自定义 header,如下所示
MessageProducer producer = session.createProducer(destination);
TextMessage message = session.createTextMessage("<Message>Test</Message>");
message.setStringProperty("ID", "XYZ");
message.setStringProperty("CODE", "COUNTRY_CODE");
producer.send(message);
在 WSO2 ESB 序列中,我试图检索 "ID" 和 "CODE" 作为
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="ID" expression="get-property('axis2', 'ID')" scope="default" type="STRING"/>
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="CODE" expression="get-property('axis2', 'CODE')" scope="default" type="STRING"/>
但这是返回空值,我什至尝试将范围设置为传输。请指教
您必须使用以下表达式,因为自定义 jms headers 存储在传输层中。
<property name="CREATE_PROXY - Config Params"
expression="get-property('transport','TRANSPORT_ID')"/>