Mule 将消息有效负载设置为会话变量

Mule 将消息有效负载设置为会话变量,mule,Mule,在我的Mule流程中,有一条消息不断被编辑,以形成流程结束时所有处理的记录。有一次,我对Web服务进行了HTTP调用,以获取消息的一些详细信息 我的问题如下: HTTP响应保存为消息负载,这要求我将主记录保存到会话变量中,以便保存所有以前的处理。但是,当我设置session变量时,session变量的值是java。class@d6883(java.class=对象的类。必须编辑以符合我的行为准则)。如何将消息有效负载的值设置为会话变量而不是消息有效负载的内存位置?假设您在会话中放置的对象是可序列

在我的Mule流程中,有一条消息不断被编辑,以形成流程结束时所有处理的记录。有一次,我对Web服务进行了HTTP调用,以获取消息的一些详细信息

我的问题如下:
HTTP响应保存为消息负载,这要求我将主记录保存到会话变量中,以便保存所有以前的处理。但是,当我设置session变量时,session变量的值是java。class@d6883(java.class=对象的类。必须编辑以符合我的行为准则)。如何将消息有效负载的值设置为会话变量而不是消息有效负载的内存位置?

假设您在会话中放置的对象是可序列化的,您可以使用MEL实现这一点:

<set-session-variable variableName="tempCanonical" value="#[message.payload]" />


您能分享一下当前如何设置会话变量吗?这是我在java中使用的初始值。class@d6883输出。直到后来我才尝试#[message:payload]我不明白:这是在会话变量中存储消息有效负载的方法。现在可能负载没有实现
toString()
方法,因此默认呈现为“java”。class@d6883“当您将其输出为字符串时。但是对象应该在会话中。是否有方法使用${}符号引用tempcononical${session.tempcononical}没有授予我访问这些值的权限。没有
${}
用于配置属性。您需要使用MEL,即
#[tempcononical]
或者如果您担心该值可能丢失
#[flowVars['tempcononical']]