在mule 4中使用vm连接器时,Vars正在被擦掉

时间:2018-06-12 05:52:47

标签: mule

mule doc说他们已经删除了传输障碍,因此我不需要在mule 4中使用会话变量。当我使用VM连接器发布和使用VM时, vars 正在被删除。我用mule进行交叉检查3.9会话vars将在到达其他流后持续存在,无论配置的VM是单向req-res。

<vm:config name="vm">
    <vm:queues>
        <vm:queue queueName="publish" />
    </vm:queues>
</vm:config>
<flow name="persistentVM">
    <vm:listener queueName="publish" config-ref="vm"
        numberOfConsumers="1">
        <vm:response>
            <vm:content><![CDATA[
        ]]></vm:content>
        </vm:response>
    </vm:listener>
    <logger level="INFO" doc:name="Logger"
        doc:id="1d624aa2-0aa4-4c5d-a258-0a8135a792ff" message="#[vars.test]" />

</flow>
<flow name="publish">
    <http:listener doc:name="Listener"
        doc:id="68f9601d-d31e-4de6-a448-98a43724de42" config-ref="HTTP_Listener_config"
        path="/error" />
    <set-variable value="#['My Message']" doc:name="Set Variable"
        doc:id="861cc914-b1ad-4068-8753-a0fd1915bed4" variableName="test" />
    <vm:publish doc:name="Publish" doc:id="153209cb-49f2-4f80-8305-56dcd046aa3c" config-ref="vm" queueName="publish"/>

`

对此的任何评论都非常有用。

1 个答案:

答案 0 :(得分:2)

对于Mule 4会话vars被删除,vars不会传播到传输障碍。如果你想在另一个流中使用var,你必须使它成为有效载荷的一部分并使用vm:content发布它,使用ObjectStore持久化或使用flow和flow-ref而不是vm连接器。