Anypoint mule:使用分散收集元素写入文件时输出中的 CopyOnArraylist

Anypoint mule: CopyOnArraylist in output while writing to file with scatter-gather element

问题陈述是并行执行多项操作并将响应汇总并存储在文件中。

link 到工作室中的 mule 流图像: image

在这个流程中,我试图做的是在分散和收集的两个分支中设置两个常量字符串并聚合并存储在文件中。我尝试用 "set payload" 和 "my response" 覆盖有效载荷。我期待 "my response" 作为文件的内容。但是文件内容是:

¨Ìsr)java.util.concurrent.CopyOnWriteArrayListx]ü’F´ê√xpwtmsg 1tmsg 2x

我进行了调试,File 端点的负载是 "my response"。集合如何以及为何写入文件。

任何人都可以帮助我让它工作。 以下是 xml:

<flow name="mule-assignFlow21123">
        <quartz:inbound-endpoint jobName="dummyflow" repeatInterval="10000" responseTimeout="10000" doc:name="Quartz">
            <quartz:event-generator-job/>
        </quartz:inbound-endpoint>
        <scatter-gather doc:name="Scatter-Gather1" >
            <threading-profile maxThreadsActive="1" poolExhaustedAction="RUN"/>
            <processor-chain>
                <set-payload value="msg 1" doc:name="Set Payload"/>
                <logger level="INFO" doc:name="Logger"/>
            </processor-chain>
            <processor-chain>
                <set-payload value="msg 2" doc:name="Set Payload"/>
                <logger level="INFO" doc:name="Logger"/>
            </processor-chain>
        </scatter-gather>
        <set-payload value="my response" doc:name="Set Payload"/>
        <file:outbound-endpoint path="/Users/premkumar/Desktop" outputPattern="Results.txt" responseTimeout="10000" mimeType="text/plain" doc:name="Save 2 File"/>
    </flow>

流程将自动确定来自飞行中事件的 processingStrategy 由于 quartz 端点,该事件将是异步的,因此文件端点也将触发异步。

而是将流的 processingStrategy 显式设置为 synchronous:

<flow name="mule-assignFlow21123" processingStrategy="synchronous">
<quartz:inbound-endpoint jobName="dummyflow" repeatInterval="10000" responseTimeout="10000" doc:name="Quartz">
    <quartz:event-generator-job/>
</quartz:inbound-endpoint>
<scatter-gather doc:name="Scatter-Gather1" >
    <threading-profile maxThreadsActive="1" poolExhaustedAction="RUN"/>
    <processor-chain>
        <set-payload value="msg 1" doc:name="Set Payload"/>
        <logger level="INFO" doc:name="Logger"/>
    </processor-chain>
    <processor-chain>
        <set-payload value="msg 2" doc:name="Set Payload"/>
        <logger level="INFO" doc:name="Logger"/>
    </processor-chain>
</scatter-gather>
<set-payload value="my response" doc:name="Set Payload"/>
<file:outbound-endpoint path="/Users/premkumar/Desktop" outputPattern="Results.txt" responseTimeout="10000" mimeType="text/plain" doc:name="Save 2 File"/>