我有一个具有以下目录结构的sftp服务器:
main
--directoryA
--subDirectory1
--directoryB
--subDirectory1
但是,当我尝试使用sftp出站网关获取目录列表时,出现以下错误:
Caused by: com.jcraft.jsch.SftpException: main/directoryA/directoryA/subDirectory1
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2873) ~[jsch-0.1.55.jar:na]
at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2225) ~[jsch-0.1.55.jar:na]
at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2242) ~[jsch-0.1.55.jar:na]
at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1592) ~[jsch-0.1.55.jar:na]
at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1553) ~[jsch-0.1.55.jar:na]
at org.springframework.integration.sftp.session.SftpSession.list(SftpSession.java:111) ~[spring-integration-sftp-5.3.3.RELEASE.jar:5.3.3.RELEASE]
... 47 common frames omitted
我不知道为什么目录会附加两次。这是我的出站网关:
<int-sftp:outbound-gateway id="gateway"
expression="payload"
request-channel="request"
remote-directory="main"
command-options="-dirs -R"
command="ls"
session-factory="sessionFactory"
reply-channel="reply">
</int-sftp:outbound-gateway>
1条答案
按热度按时间ca1c2owp1#
查看服务器日志,看看是否有任何线索。
也许你没有权限访问这个子目录?
根据堆栈跟踪,服务器返回101(客户端预期为105)。
值(i)不出现在
SftpException.getMessage()
显示在堆栈跟踪中。你可以通过遍历
cause()
链条及使用toString()
.它可能提供更多的线索。