防止文件传输关闭骡子中的流



我正在尝试将csv文件复制到本地目录,然后解析SftpInputStream。文件已正确复制。但是,尽管我在文件连接器中将streaming设置为 false,但似乎file inbound-endpoint关闭了流,以便我的转换器无法解析流。

如何防止file:outbound-endpoint在复制文件后关闭stream

这些是我的连接器:

<sftp:connector name="mySftpConnector" pollingFrequency="1000" autoDelete="true" />
    <file:connector name="myFileOutputConnector" streaming="false" outputPattern="#[header:originalFilename]" />

这是我的流程:

<flow name="myFlow" processingStrategy="synchronous">
    <sftp:inbound-endpoint
            address="xxx"
            connector-ref="mySftpConnector" autoDelete="false">
            <file:filename-wildcard-filter pattern="*.csv"/>
    </sftp:inbound-endpoint>
    <file:outbound-endpoint path="/archive" connector-ref="myFileOutputConnector" />
    <transformer ref="mySftpTransformer" />
    <component>
         <spring-object bean="mySftpHandler" />
    </component>
</flow>

引发的异常是:

java.io.IOException: Stream closed
        at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:308)
        at org.mule.transport.sftp.SftpInputStream.read(SftpInputStream.java:90)
        ...

如果未在FTP连接器上启用streamingMule将尝试将从 FTP 服务器拾取的文件读取为字节 [] 以用作 MuleMessage 的有效负载。之后流将关闭。

如果在inbound endpoints上使用streaming则用户有责任关闭输入流。您可以打开stream并尝试

相关内容

  • 没有找到相关文章

最新更新