使用会话变量中的会话值在 Mule 3 中将 Map 设置为有效负载



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

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

此处描述的方法是正确的,当我对键值对进行硬编码时,它在以下情况下有效。

<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

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

注意:我使用的是骡子 3.9

提前感谢!!

不需要嵌套表达式计算器 #[]

试试这个:

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

最新更新