【问题标题】:Mule ESB. How to Save variables value on the session in the "flow"?骡 ESB。如何在“流”中保存会话中的变量值?
【发布时间】:2017-03-09 17:47:23
【问题描述】:

骡 ESB。如何在“流”中保存会话中的变量值?

我的 xml

    <tcp:connector name="TCP1" doc:name="TCP connector" clientSoTimeout="1000000" 
    receiveBacklog="0" receiveBufferSize="0" sendBufferSize="0" serverSoTimeout="1000000" 
    socketSoLinger="0" validateConnections="true"  >
    <tcp:direct-protocol payloadOnly="true"/>
</tcp:connector>
 <flow name="tcp_testFlow2" doc:name="tcp_testFlow2">
    <tcp:inbound-endpoint exchange-pattern="request-response" address="tcp://10.0.1.4:2222" responseTimeout="10000"  connector-ref="TCP"   doc:name="TCP"/>
    <logger message="begin #[sessionVars['id_device']] - #[flowVars['id_dev_var']]" level="INFO" doc:name="Copy_of_Copy_of_Logger"/>
    <choice doc:name="Choice">
        <when expression="sessionVars['id_device']&gt;0">
            <logger message="choice #[sessionVars['id_device']] - #[flowVars['id_dev_var']]" level="INFO" doc:name="Logger"/>
        </when>
        <otherwise>
            <set-session-variable doc:name="Session Variable" value="10" variableName="id_device"/>
            <set-variable variableName="id_dev_var" value="10" doc:name="Variable"/>
        </otherwise>
    </choice>
    <logger message="end #[sessionVars['id_device']] - #[flowVars['id_dev_var']]" level="INFO" doc:name="Copy_of_Logger"/>
    </flow>

在控制台中我看到了这个:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Started app 'tst_tcp'                                    +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
----------
INFO  2014-03-26 16:17:31,077 [[tst_tcp].TCP.receiver.02] org.mule.api.processor.LoggerMessageProcessor: begin null - null
----------
INFO  2014-03-26 16:17:31,081 [[tst_tcp].TCP.receiver.02] org.mule.api.processor.LoggerMessageProcessor: end 10 - 10
----------
INFO  2014-03-26 16:17:32,090 [[tst_tcp].TCP.receiver.02] org.mule.api.processor.LoggerMessageProcessor: begin null - null
----------
INFO  2014-03-26 16:17:32,092 [[tst_tcp].TCP.receiver.02] org.mule.api.processor.LoggerMessageProcessor: end 10 - 10
----------
INFO  2014-03-26 16:17:33,136 [[tst_tcp].TCP.receiver.02] org.mule.api.processor.LoggerMessageProcessor: begin null - null
----------
INFO  2014-03-26 16:17:33,140 [[tst_tcp].TCP.receiver.02] 
org.mule.api.processor.LoggerMessageProcessor: end 10 - 10
----------

但我想要

INFO  2014-03-26 16:17:33,136 [[tst_tcp].TCP.receiver.02] org.mule.api.processor.LoggerMessageProcessor: **begin 10 - 10**
----------
INFO  2014-03-26 16:17:33,140 [[tst_tcp].TCP.receiver.02] 
org.mule.api.processor.LoggerMessageProcessor: end 10 - 10

我该怎么做? 请帮忙:)

【问题讨论】:

    标签: java variables mule esb


    【解决方案1】:

    在设置之前,您无法在流程中检索会话变量。使用Object Store Module 在调用/流实例之间持久化数据。

    【讨论】:

    • thx,它将起作用,而不是创建新连接,例如,在第一次连接到 tcp 时,我在此会话中记住 id 用户连接,在第二次连接到 tcp 时,我记住了新的 id 用户新会话并在第一次连接时记住 id?
    【解决方案2】:

    尝试“设置会话变量”,使创建的变量范围跨越多个流。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 2013-03-31
      • 1970-01-01
      相关资源
      最近更新 更多