Java Mule:同一会话中的多个流
我有一个Mule应用程序,其目的是发送电子邮件。应用程序执行两个步骤: 1在第一个流中,它接受端点上的请求并将其写入vm队列 2在第二个流中,vm队列中的消息作为HTTPPost发送到webservice组件,该组件将发送电子邮件 到目前为止,我还没有对mule_config.xml中的“session”做任何修改。因此,两个流将在同一个会话下Java Mule:同一会话中的多个流,java,web-services,session,esb,mule,Java,Web Services,Session,Esb,Mule,我有一个Mule应用程序,其目的是发送电子邮件。应用程序执行两个步骤: 1在第一个流中,它接受端点上的请求并将其写入vm队列 2在第二个流中,vm队列中的消息作为HTTPPost发送到webservice组件,该组件将发送电子邮件 到目前为止,我还没有对mule_config.xml中的“session”做任何修改。因此,两个流将在同一个会话下 现在,在同一个会话下有多个流是一个好的实践吗?或者如果可能的话,我需要为每个流有一个不同的会话吗?上述两个流在同一个会话下运行的方法的优缺点是什么。首先
现在,在同一个会话下有多个流是一个好的实践吗?或者如果可能的话,我需要为每个流有一个不同的会话吗?上述两个流在同一个会话下运行的方法的优缺点是什么。首先要记住,Mule中的会话不同于web容器中的会话:它只是一个可以跨多个流的特定消息属性范围 考虑以下几点:
<flow name="SessionDemo">
<vm:inbound-endpoint path="test.in" />
<set-session-variable variableName="mySessionVar"
value="myValue" />
<vm:outbound-endpoint path="next.in" />
</flow>
<flow name="SessionPropagationDemo">
<vm:inbound-endpoint path="next.in" />
<logger message="#[sessionVars.mySessionVar]"/>
</flow>
如果运行此示例,您将看到mySessionVar会话作用域消息属性aka session变量已通过VM队列传播到下一个流
如果需要跨多个流携带消息属性,使用会话变量将使您的生活更轻松,否则每次通过传输跳到下一个流时,您都必须手动将属性从入站复制到出站作用域。这不适用于流引用跳。首先请记住,Mule中的会话与web容器中的会话不同:它只是一个简单的会话可以跨越多个流的特定消息属性范围 考虑以下几点:
<flow name="SessionDemo">
<vm:inbound-endpoint path="test.in" />
<set-session-variable variableName="mySessionVar"
value="myValue" />
<vm:outbound-endpoint path="next.in" />
</flow>
<flow name="SessionPropagationDemo">
<vm:inbound-endpoint path="next.in" />
<logger message="#[sessionVars.mySessionVar]"/>
</flow>
如果运行此示例,您将看到mySessionVar会话作用域消息属性aka session变量已通过VM队列传播到下一个流
如果您需要跨多个流携带消息属性,使用会话变量将使您的生活更轻松,否则每次通过传输跳到下一个流时,您都必须手动将属性从入站复制到出站作用域。这不适用于流引用跳