jcraft jsch 抛出“输入流已关闭”异常

问题描述 投票:0回答:1

从远程 FTP 站点下载接近 2 GB 大小的文件时,我们看到以下错误并且无法继续。有趣的是文件被下载,但可能在最后阶段遇到此异常。有人遇到过这个问题吗?您能帮忙看看如何处理这个异常吗?

使用的 jsch 版本 - 0.1.51

4: 
    at com.jcraft.jsch.ChannelSftp._get(ChannelSftp.java:1160)
    at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:1006)
    at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:984)
    at SFTPTest.main(SFTPTest.java:23)
Caused by: java.io.IOException: inputstream is closed
    at com.jcraft.jsch.ChannelSftp.fill(ChannelSftp.java:2884)
    at com.jcraft.jsch.ChannelSftp.header(ChannelSftp.java:2908)
    at com.jcraft.jsch.ChannelSftp.checkStatus(ChannelSftp.java:2446)
    at com.jcraft.jsch.ChannelSftp._sendCLOSE(ChannelSftp.java:2465)
    at com.jcraft.jsch.ChannelSftp._get(ChannelSftp.java:1155)
    ... 3 more
java jsch spring-integration-sftp
1个回答
0
投票

我在 Spring 任务中通过 SftpOutboundGateway 进行文件传输时遇到同样的问题。我传输的文件的大小非常正常。我正在使用

com.jcraft::jsch.jar-0.1.55

它说:

2024-01-18T12:15:00.884+01:00 INFO  [] --- [job-thread1] com.harry.potter.mail.service.EmailServiceImpl: sendHtmlMessage, Mail subj  myJob TEST notification MyDataExport 
2024-01-18T12:15:01.065+01:00 INFO  [] --- [job-thread1] com.harry.potter.job.myJobTask: MyDataExport finished 
2024-01-18T12:15:01.065+01:00 INFO  [] --- [job-thread1] job-MyDataExport: Job finished, status OKAY 
2024-01-18T13:15:00.869+01:00 INFO  [] --- [Connect thread transfer.harry.potter.de session] com.jcraft.jsch: Caught an exception, leaving main loop due to End of IO Stream Read 
2024-01-18T13:15:00.869+01:00 INFO  [] --- [Connect thread transfer.harry.potter.de session] com.jcraft.jsch: Disconnecting from transfer.harry.potter.de port 22 

任务早就完成了,大约一个小时后,异常发生了。 更糟糕的是:Spring 调度程序似乎因该异常而停止,并且该任务和任何后续任务都不再执行。然后我需要重新启动 Spring Boot 应用程序的上下文。

我怎样才能捕获这样的异常?或者我怎样才能避免异常本身?

© www.soinside.com 2019 - 2024. All rights reserved.