1

Mule Requestor を使用して、FTP 経由でファイルのコレクションを受信して​​います。

FTP ファイル コレクションの取得を要求する

コレクションでこれを行うために、うまく機能する Collection Splitter を使用しています。唯一の問題は、HTTP コネクタに戻るときに次の例外がスローされることです。

java.lang.UnsupportedOperationException: getPayloadAsBytes()、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>
4

1 に答える 1

3

ペイロードを分割しているため、取得している理由java.lang.UnsupportedOperationException: getPayloadAsBytes(), use getPayload(DataType.BYTE_ARRAY_DATA_TYPE)は明らかです。最後に HTTP が問題を引き起こしているため、分割された応答が発生します。1 つの解決策は、フローの最後でアグリゲーター
を 使用することです。これにより、この例外が防止されます。 最後の Aは良い選択であり、これを防ぐのに役立ちます
<collection-aggregator/>

更新ブロック
の下に置いておくと、正常に実行されます<async>

于 2015-08-08T04:30:05.483 に答える