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"/>
`
对此的任何评论都非常有用。
答案 0 :(得分:2)
对于Mule 4会话vars被删除,vars不会传播到传输障碍。如果你想在另一个流中使用var,你必须使它成为有效载荷的一部分并使用vm:content发布它,使用ObjectStore持久化或使用flow和flow-ref而不是vm连接器。