使用会话变量中的会话值将地图设置为 mule 3 中的有效载荷
setting map as payload in mule 3 using session values from session variables
我在本地主机上有一个 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
提前致谢!!
不需要嵌套表达式求值器#[]
试试这个:
<set-payload value="#[['Test' : sessionVars.transactionAmount]]" />
我在本地主机上有一个 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
提前致谢!!
不需要嵌套表达式求值器#[]
试试这个:
<set-payload value="#[['Test' : sessionVars.transactionAmount]]" />