从组件内的JMS队列读取时,消息中缺少Mule会话变量

时间:2013-10-14 19:48:21

标签: java jms session-variables mule endpoint

我需要在哪里需要从组件内部读取JMS队列中的消息。

但在此过程中,缺少与消息关联的会话变量 但是,当从JMS读取相同的消息时,会话变量可用:inbound-endpoint而不是从组件内部读取。

以下是我的样本流程。

主流将会话变量设置为MuleMessage并将其发布到JMS:outbound-endpoint

<flow name="main-flow" >
    <some  inbound>
    ...
    < Some processing >
    <set-session-variable .... />
    ...
    <jms:outbound-endpoint  queue="myQueue1">
</flow>

当从JMS:inbound-endpoint读取消息时,可以在消息中看到会话变量。

<flow name="second-flow" >
    <jms:inbound-endpoint queue="myQueue1" />

    <logger level="INFO" />
    ...
    <  some processing />   
</flow>

但是当从轮询JMS:队列的组件中读取消息时,缺少会话变量。

<flow name="third-flow" >
    <quartz:inbound-endpoint  repeat-interval="5 mins" />
    ....
    <component>
        <spring-object bean="MyComponent"/>
    </component>
    ....
</flow>

MyComponent类的onCall方法具有以下代码,可以从JMS队列中读取。

    String reqURL = "jms://" + queueName ;
    muleMessage = eventContext.requestEvent(reqURL, 1000);

但是Mule消息中没有会话变量。

0 个答案:

没有答案