[英]Prevent file transport from closing stream in Mule
我正在嘗試將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
連接器上啟用streaming
,則Mule
將嘗試將從FTP服務器拾取的文件讀取到byte []中,以用作MuleMessage的有效負載。 之后,流關閉。
如果在inbound endpoints
上使用streaming
,則用戶有責任關閉輸入流。 您可以打開stream
並嘗試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.