【问题标题】:setting map as payload in mule 3 using session values from session variables使用会话变量中的会话值将映射设置为 mule 3 中的有效负载
【发布时间】:2019-11-29 20:09:22
【问题描述】:

我在本地主机上有一个 GET 入站请求。我已经从请求中提取了所有 URI 参数并将它们存储在会话变量中。现在我面临的问题是当我尝试使用会话值将地图设置为有效负载时。

在寻找正确的方法时,我偶然发现了this

这里描述的方法是正确的,当我硬编码键值对时,它适用于以下情况。

<set-payload value="#[['Test' : 'hjhj' ]]"  encoding="UTF-8"/>

打印以下消息:

Payload               : {Test=hjhj}
Payload Type          : java.util.HashMap

但是当我使用相同的方法并使用会话变量编写以下代码时:

 <set-session-variable variableName="transactionAmount" value="#[message.inboundProperties.'http.query.params'.amount]" doc:name="Session Variable"/>

<set-payload value="#[['Test' : #[sessionVars.transactionAmount] ]]"  encoding="UTF-8"/>

被打印的消息:

Payload               : {Test=[1]}
Payload Type          : java.lang.String

请告诉我如何克服这个问题。我被困了很久。

注意:我使用的是 Mule 3.9

提前致谢!!

【问题讨论】:

  • 为什么使用会话变量而不是流变量?默认情况下,您应该使用流变量。

标签: xml mule mule-studio mulesoft


【解决方案1】:

不需要嵌套表达式求值器#[]

试试这个:

<set-payload value="#[['Test' : sessionVars.transactionAmount]]" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    相关资源
    最近更新 更多