在 SFTP "no such file" 失败时记录实际的 file/directory

Logging the actual file/directory on SFTP "no such file" failure

我们大量使用 Spring 集成,效果很好。但是,我不确定如何获取 Jsch/Spring Integration 来记录有问题的实际文件,当我收到一个错误时,例如,尝试在一个不存在的目录上做一个列表sftp 服务器。我得到如下所示的异常。

有什么方法可以让 Spring Integration 或 Jsch 打印出 "No such file" 的文件信息吗?当我查看 Jsch 代码时,似乎没有针对该特定问题的任何日志记录,但我可能遗漏了一些东西,即使它没有任何东西,也许捕获此异常的 Spring 代码有它可以记录的一些上下文。

事实上,我们要么必须在这种情况下附加调试器,要么尝试对我们可能必须设置的目录进行有根据的猜测。

Caused by: org.springframework.messaging.MessagingException: Failed to execute on session; nested exception is org.springframework.core.NestedIOException: Failed to list files; nested exception is 2: No such file
    at org.springframework.integration.file.remote.RemoteFileTemplate.execute(RemoteFileTemplate.java:444)
    at org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizer.synchronizeToLocalDirectory(AbstractInboundFileSynchronizer.java:235)
    ... 13 common frames omitted
Caused by: org.springframework.core.NestedIOException: Failed to list files; nested exception is 2: No such file
    at org.springframework.integration.sftp.session.SftpSession.list(SftpSession.java:104)
    at org.springframework.integration.sftp.session.SftpSession.list(SftpSession.java:50)
    at org.springframework.integration.file.remote.session.CachingSessionFactory$CachedSession.list(CachingSessionFactory.java:218)
    at org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizer.doInSession(AbstractInboundFileSynchronizer.java:239)
    at org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizer.doInSession(AbstractInboundFileSynchronizer.java:235)
    at org.springframework.integration.file.remote.RemoteFileTemplate.execute(RemoteFileTemplate.java:435)
    ... 14 common frames omitted
Caused by: com.jcraft.jsch.SftpException: No such file
    at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2873)

我打开了INT-4534将目录添加到例外