我有来自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个值)。
任何帮助非常感谢! /约翰
答案 0 :(得分:0)
如果你的有效载荷是Map
,那么payload.get(0)或payload [0]的行为就好像你试图从地图中获取一个值为0作为关键字的值,我想这并不是。 t存在于你的地图中。
尝试使用名称#[payload.name]
或#[payload.name2]
或#[payload[name]]