Mule - 收到请求集合后如何响应。 (骡子请求者)

Mule - How to respond after receiving a request collection. (Mule Requester )

我正在使用 Mule Requestor 通过 FTP 接收一组文件。

为了对集合执行此操作,我使用了效果很好的 Collection Splitter。唯一的问题是,当我返回到 HTTP 连接器时,它会抛出以下异常:

java.lang.UnsupportedOperationException: getPayloadAsBytes(), use getPayload(DataType.BYTE_ARRAY_DATA_TYPE)

我猜这与试图插入到响应中的负载类型有关​​,但我在 Mule 领域相当陌生。知道是什么原因造成的吗?我应该怎么做才能解决这个问题?

我试过在记录器之后设置负载,但没有用。

代码:

<flow name="fileGetter">     
  <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP" allowedMethods="GET"></http:listener>
  <mulerequester:request-collection config-ref="Mule_Requester" resource="ftp_For_Requester_Dependent" doc:name="Mule Requester</mulerequester:request-collection>  
  <collection-splitter doc:name="Collection Splitter"></collection-splitter>
  <logger level="INFO" doc:name="Logger" message="#[message.inboundProperties.originalFilename]"></logger>  
</flow>

你得到 java.lang.UnsupportedOperationException: getPayloadAsBytes(), use getPayload(DataType.BYTE_ARRAY_DATA_TYPE) 的原因很明显,因为你正在拆分负载,最后你的 HTTP 会导致问题,因为会有拆分响应。
一种解决方案是,在流程结束时使用 聚合器 ,这将防止出现此异常。
最后的 <collection-aggregator/> 将是一个不错的选择,有助于防止这种情况发生

更新
将它放在 <async> 块下,它将 运行 成功