【问题标题】:WSO2 ESB: get JMS message propertyWSO2 ESB:获取 JMS 消息属性
【发布时间】:2013-05-04 01:01:11
【问题描述】:

我有侦听消息代理上的 JMS 队列的代理。当我将消息发送到队列时,我将自定义属性设置为 JMS 消息。但是当我记录代理收到的消息时,没有自定义 JMS 属性。
如何在代理中获取自定义 JMS 属性?

我使用 WSO2 ESB 4.6.0 和 ActiveMQ 5.8.0。

<proxy xmlns="http://ws.apache.org/ns/synapse" name="MyProxy" transports="https,TTP,http,jms" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <property name="OUT_ONLY" value="true"/>
         <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
         <log level="full"/>            
      </inSequence>
      <outSequence>         
         <drop/>
      </outSequence>
      <endpoint>
         <address uri="jms:/MyQueue?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616&transport.jms.DestinationType=queue" format="pox"/>
      </endpoint>
   </target>   
</proxy>

【问题讨论】:

    标签: jms wso2 wso2esb


    【解决方案1】:

    必须获取传输标头才能访问自定义 JMS 属性。我找到了两种方法:
    1)来自XML配置:

    <log level="custom">            
        <property name="jms property" expression="get-property('transport', 'custom_prop_key_1')"/>            
    </log>
    

    2) 来自自定义类中介:

    public boolean mediate(MessageContext synCtx) {
        ((Map)((Axis2MessageContext) synCtx).getAxis2MessageContext().getProperty("TRANSPORT_HEADERS")).get("custom_prop_key_1");
    ...
    }
    

    【讨论】:

      【解决方案2】:

      我认为它们不能直接在 SOAP 消息中使用。它们应该在 Axis2 / Transport 范围内可用。通常 JMS 传输只将 JMS 消息的有效负载添加到 SOAP 主体。所以请尝试关注。

      您能否使用 ESB 中的属性检查它们是否检索并记录它们。

      <log level="custom">
          <property name="JMS_PROPERTY---->" expression="get-property('axis2','your-property-name')"/>
      </log>
      

      您可以参考this 了解属性范围。 (如果它设置在传输标头中,您可以将范围从 'axis2' 更改为 'transport' 并尝试。)

      我没有亲自尝试过这个并在逻辑上提出答案。

      【讨论】:

      • 这个答案是完全正确的。谢谢!在单独的答案中添加了关于从自定义调解器获取 JMS 属性的另一项观察。
      猜你喜欢
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 2015-10-26
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多