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>
块下,它将 运行 成功
我正在使用 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>
块下,它将 运行 成功