Return 来自 Mule 中 linkedHashMap 的单个值

Return individual values from linkedHashMap in Mule

我在 Mule 中有一个网络服务的输出,return是一个 linkedHashMap,我需要获取要动态插入到模板中的各个值。该模板用于通过 SMTP 连接器发送电子邮件。我可以使用 MEL #[payload] 获取所有值,但我无法一一获取它们。我试过 #[payload.get(0)], #[payload[0]] 但它们都是 return null.

骡子 XML 看起来像这样:

<flow name="MW_Flow">
    <file:inbound-endpoint path="C:\...." 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] 的电子邮件。以下事件[event].......

除了使用 #[payload] 时,我得到的都是空值,其中 return 是整行(4 个值)。

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

如果您的有效载荷是 Map,那么 payload.get(0) 或有效载荷[0] 的行为就好像您正试图从地图中获取一个值,我猜这是以 0 为键您的地图中不存在。

尝试使用名称访问它 - #[payload.name]#[payload.name2]#[payload[name]]