Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mule:同一会话中的多个流_Java_Web Services_Session_Esb_Mule - Fatal编程技术网

Java Mule:同一会话中的多个流

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应用程序,其目的是发送电子邮件。应用程序执行两个步骤:

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队列传播到下一个流

如果您需要跨多个流携带消息属性,使用会话变量将使您的生活更轻松,否则每次通过传输跳到下一个流时,您都必须手动将属性从入站复制到出站作用域。这不适用于流引用跳