从Mule中的linkedHashMap返回单个值

时间:2016-04-22 15:58:20

标签: mule linkedhashmap

我有来自Mule中的webservice的输出,它返回一个linkedHashMap,我需要将各个值动态插入到模板中。该模板用于通过SMTP连接器发送电子邮件。我可以使用MEL#[payload]获取所有值,但我无法逐个获取它们。我已经尝试了#[payload.get(0)],#[payload [0]],但它们都返回null。

Mule XML看起来像这样:

<flow name="MW_Flow">
    <file:inbound-endpoint path="C:\....\1" connector-    ref="File" responseTimeout="10000" doc:name="File" pollingFrequency="60000"/>
    <ws:consumer config-ref="File_Read_WS" operation="all3" doc:name="FileRead DBWriter WS"/>
    <dw:transform-message metadata:id="6ee92ba8-9f67-40d6-bfa3-3e237da20822" doc:name="Transform Message">

<foreach doc:name="For Each">
        <logger message="#[payload]" level="INFO" doc:name="Logger"/>
        <parse-template location="C:\.....\Templates\Mail.txt" metadata:id="b7d894eb-465b-47f7-a542-b49fc4fb53d9" doc:name="Parse Template"/>
        <logger message="2: #[message.exception] #[message.dataType] #[payload]" level="INFO" doc:name="Logger"/>
    </foreach>
</flow>

模板(纯文本文件)看起来有点像这样:

你好[姓名]。 这是来自[name2]的电子邮件。以下事件[事件] .....

我得到的只是空值,除非使用#[payload]返回整行(4个值)。

任何帮助非常感谢! /约翰

1 个答案:

答案 0 :(得分:0)

如果你的有效载荷是Map,那么payload.get(0)或payload [0]的行为就好像你试图从地图中获取一个值为0作为关键字的值,我想这并不是。 t存在于你的地图中。

尝试使用名称#[payload.name]#[payload.name2]#[payload[name]]

进行访问