首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MuleSoft ForEach并行循环。输出中带有错误字符的不必要的消息

MuleSoft ForEach并行循环。输出中带有错误字符的不必要的消息
EN

Stack Overflow用户
提问于 2022-03-01 00:42:22
回答 3查看 399关注 0票数 0

在Mule 4中的流中,我迭代多个文件,从它们获取数据并将它们转换为json。我使用一个并行的ForEach组件来完成这个任务。以下是这两个调用的预期结果:

结果1:

代码语言:javascript
复制
{
"plant": "CD909837289",
"serial": "SRF",
"product": "CMNPSD"
},
{
 "plant": "CD909837290",
 "serial": "SFG",
 "product": "CMNHSA"
}

结果2:

代码语言:javascript
复制
{
"plant": "CD909837296",
"serial": "SFG",
"product": "ERTYUI"
},
{
 "plant": "CD909837297",
 "serial": "SVH",
 "product": "SDFGHJ"
}

但是,当我调用这些输出时,我还会得到以下消息,其中包含混淆的字符:

代码语言:javascript
复制
    ��srjava.util.ArrayListx����a�IsizexpwsrRorg.mule.runtime.core.internal.message.DefaultMessageBuilder$MessageImplementationeJ蹨��L
inboundMaptLjava/util/Map;LoutboundMapq~LtypedAttributest*Lorg/mule/runtime/api/metadata/TypedValue;xpsr3org.mule.runtime.api.util.CaseInsensitiveMapWrappervrD=wny3LbaseMapq~xpsrjava.util.HashMap���`�F
loadFactorI thresholdxp?@wxsq~sq~?@wxsr(org.mule.runtime.api.metadata.TypedValue�i�Қ,��LdataTypet(Lorg/mule/runtime/api/metadata/DataType;LvaluetLjava/lang/Object;xpsr6org.mule.runtime.core.internal.metadata.SimpleDataType�Jd�~�Z
streamTypeLmimeTypet)Lorg/mule/runtime/api/metadata/MediaType;LtypetLjava/lang/Class;xpsr'org.mule.runtime.api.metadata.MediaTypeͬU�q�S�ZdefinedInAppLparamsq~LprimaryTypetLjava/lang/String;LsubTypeq~xpsrjava.util.Collections$EmptyMapY6�Z���xpt*q~pxvr/org.mule.extension.file.api.LocalFileAttributesJ�5��Z    directoryZregularFileJsizeZsymbolicLinkLcreationTimetLjava/time/LocalDateTime;LlastAccessTimeq~LlastModifiedTimeq~xr9org.mule.extension.file.common.api.AbstractFileAttributes���$pLfileNameq~Lpathq~xpsq~tproduct-date.csvt=/Users/dbien_local/Downloads/DATAFORSCORPION/product-date.csvesr
java.time.Ser�]��"H�xpw
��xsq~!w
�*�xsq~!w
��xw��������xz��[
  {
    "plant": "CD909837289",
    "serial": "SRF",
    "product": "CMNPSD"
  },
  {
    "plant": "CD909837290",
    "serial": "SFG",
    "product": "CMNHSA"
  }

在每次结果之前,我都会得到同样的信息。我怎样才能摆脱上面的文本,只得到预期的输出?

编辑:下面是流的XML:

代码语言:javascript
复制
<file:config name="File_Config" doc:name="File Config" doc:id="45e5b346-2497-4422-961b-a04bb5a7bf80" >
    <file:connection workingDir="/Users/dbien_local/Downloads/DATAFORSCORPION" />
</file:config>
<flow name="get-data-ifFlow" doc:id="8d6b11ec-2a24-49b4-82b4-195816aeb8e5" >
    <http:listener doc:name="Listener" doc:id="8937d90f-75f7-43d0-bf20-02f70f9b2073" config-ref="HTTP_Listener_config" path="/data"/>
<parallel-foreach doc:name="Parallel For Each" doc:id="50ca63de-9004-4a52-97f8-9935425c2763" collection='#[["date", "product"]]'>
        <file:read doc:name="Read" doc:id="f3fbadf3-2716-47c6-803b-90edefff67a3" config-ref="File_Config" path='#["/Users/dbien_local/Downloads/data/product-" ++ payload ++ ".csv"]' />
        <ee:transform doc:name="Transform Message" doc:id="cf7d4f97-2144-4a49-958c-323e26b8b00e">
        <ee:message>
            <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload map ( payload01 , indexOfPayload01 ) -> {
    plant: payload01.plant,
    serial: payload01.serial,
    product: payload01.product
}]]></ee:set-payload>
            </ee:message>
    </ee:transform>
            
</parallel-foreach>

循环中只有两个组件。一个从csv文件读取数据,然后转换消息组件将其转换为JSON。我完全不知道java消息是从哪里来的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-03-01 19:34:33

正如Aled所提到的,您正在看到序列化的java对象。您可以在并行后添加一条转换消息,以获得JSON消息。

若要获取有效负载列表,请在转换消息或设置有效负载中使用以下脚本。

代码语言:javascript
复制
%dw 2.0
output application/json
---
payload.payload
票数 1
EN

Stack Overflow用户

发布于 2022-03-01 02:28:11

您可以尝试在合并之前更改Payload类型吗?就像这样:

代码语言:javascript
复制
((write(payload.message, "application/json")) 
票数 0
EN

Stack Overflow用户

发布于 2022-03-01 12:53:02

您所看到的是Java对象的序列化。因为问题中没有足够的信息来给出更具体的答案,所以我将进行一个有根据的猜测,并假设您看到的是消息或消息列表,而不是您希望看到的有效负载。请记住,与标准foreach不同,并行foreach返回的是消息列表,而不是有效负载列表。消息除了包含属性外,还包含有效负载。。您只需要从列表的每个消息中获取有效负载。

另外,尝试使用Mule 4的最新版本,如果可能的话,使用最新的累积补丁,以避免以前版本中已知的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71302581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档