java - 如何将字符串添加到转换消息组件中的 Java 列表?
问题描述
我正在设置一个如下的变量:
<set-variable value='#[[]]' doc:name="Set Doc Array" doc:id="bfb46451-ac45-4d73-8189-5b73cdc300b3" variableName="docHashMap"/>
然后我尝试在 foreach 循环中向该列表中添加元素,如下所示:
<ee:transform doc:name="Transform Message" doc:id="ad2a1dd7-0973-4854-b44c-bdfe8eb54778">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
import * from dw::core::Binaries
output application/java
---
vars.docHashMap.add({
"Attachment_Document_Type": vars.factIntakeDocPayload.documentId,
"Attachement_Content_Type": vars.documentMetadata.contentType,
"Attachment_Content": toBase64(payload)
})]]></ee:set-payload>
</ee:message>
</ee:transform>
在循环之后,我添加了一个 Logger 组件,并且我正在记录docHashMap
变量,如下所示:
<logger level="WARN" doc:name="Logger" doc:id="482034d9-00c2-4ae1-8fd3-e999f8ece196" message="#[vars.docHashMap]"/>
但它是空的,意思是我在控制台上得到的只是[]
,为什么?我在这里缺少什么?顺便说一句,我是 Mule4 的新手。
解决方案
基本上你需要做的是用新名称再次设置变量。使用集合变量
<ee:transform doc:name="Transform Message" doc:id="ad2a1dd7-0973-4854-b44c-bdfe8eb54778">
<ee:set-variable variableName="docHashMap"><![CDATA[%dw 2.0
import * from dw::core::Binaries
output application/java
---
vars.docHashMap + ({
"Attachment_Document_Type": vars.factIntakeDocPayload.documentId,
"Attachement_Content_Type": vars.documentMetadata.contentType,
"Attachment_Content": toBase64(payload)
})]]></ee:set-variable>
</ee:transform>
推荐阅读
- javascript - 用html标签替换textarea中的字符
- python - 按下 tkinter 按钮时如何播放 mp3 文件?
- c# - 如何在 For 循环中的控制台应用程序中播放声音,听起来像是有人在打字?
- kotlin - 在 Kotlin 中检查 ArrayList 的类型
- azure-devops - 如何为 SSDT 项目设置 Azure DevOps 管道?
- r - 尝试在 Shiny 中的同一图上显示多个选择器输入时出错
- swift - NSFetchedResultsController controllerDidChangeContent 从未调用过
- java - 如何找出字体中没有的字母?
- bash - grep 未提取所需列表
- ruby - 使用 Ruby 将数据加载到 BigQuery 时如何跳过前导行?