0

同期からキュー非同期に変換したばかりのフローがあります。foreach のある時点で、次のようにファイルを開き、FileInputStream を設定しています。

public class FileAsStream {
    // return a fileInputStream.
    public FileInputStream fileAsStream(String fileName) {
        File file = new File(fileName);
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(file);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            return fis;
        }
    }

次に、FileInputStream がペイロードになり、http または sftp エンドポイントに送信します。フローが同期の場合、#[payload.close()] を実行してストリームを閉じることができました。しかし、非同期になったので、できるようには見えません。ストリームを閉じようとすると失敗します。私の質問は、ストリームを閉じるかどうかが重要かどうかです。Mule は、フローのコンテキストで作成されたオブジェクトをラップしますか? または、ストリームがエンドポイントに送信された後、どうにかしてストリームを閉じる必要がありますか?

4

0 に答える 0