【问题标题】:Setting Message Payload to Session Variable将消息有效负载设置为会话变量
【发布时间】:2012-10-10 01:19:22
【问题描述】:

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

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

【问题讨论】:

  • 您能分享一下您目前是如何设置会话变量的吗?

标签: mule


【解决方案1】:

假设您放入会话的对象是Serializable,您可以使用 MEL 来实现:

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

【讨论】:

  • 这是我使用的初始值,并带有 java.class@d6883 输出。直到后来我才尝试#[message:payload]
  • 我不明白:这将消息有效负载存储在会话变量中的方式。现在,payload 可能没有实现toString() 方法,因此当您将其作为字符串 输出时,默认呈现“java.class@d6883”。但是对象应该在会话中。
  • 有没有办法使用 ${} 表示法来引用 tempCanonical? ${session.tempCanonical} 没有让我访问这些值。
  • No ${} 用于配置属性。您需要使用 MEL,即 #[tempCanonical] 或者如果您担心该值可能会丢失 #[flowVars['tempCanonical']]
猜你喜欢
  • 1970-01-01
  • 2016-10-01
  • 2013-02-17
  • 2013-01-27
  • 1970-01-01
  • 2018-03-16
  • 1970-01-01
  • 2015-09-15
相关资源
最近更新 更多