0

我正在使用 scala-ssh 0.7.0 从远程服务器下载文件。

下载本身似乎是成功的(我可以找到下载的文件)。这是日志输出的最后一部分:

16:14:43.824 [main] TRACE net.schmizz.sshj.xfer.LoggingTransferListener --传输 100% 的 log-file.txt16:14:43.824 [main] INFO net.schmizz.sshj.common.StreamCopier -- 44.82421875 KiB 在 1.572 秒内传输(28.514134064885496 KiB/s) 16:14:43.825 [main] DEBUG net.schmizz.sshj.xfer.scp.SCPEngine --远程同意传输完成 16:14:43.826 [main] DEBUG net.schmizz.sshj.xfer.scp.SCPEngine -- 信令:传输完成 16:14:43.826 [main] TRACE net.schmizz.sshj.transport.Encoder -- 编码数据包 #10 : 5e 00 00 00 00 00 00 00 01 00 16:14:43.826 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote -- 从 1 消耗到 2097148 16:14:44.220 [reader] TRACE net.schmizz.sshj.transport.Decoder -- 接收到的数据包 #14: 62 00 00 00 00 00 00 00 0b 65 78 69 74 2d 73 74 61 74 75 73 00 00 00 00 00 16:14:44.221 [阅读器] TRACE net.schmizz.sshj.transport.TransportImpl -- 收到包 CHANNEL_REQUEST 16:14:44.221 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel -- 得到 chan 请求exit-status16:14:44.222 [reader] TRACE net.schmizz.sshj.transport.Decoder -- 收到的数据包 #15: 60 00 00 00 00 16:14:44.222 [reader] TRACE net.schmizz.sshj.transport.TransportImpl --收到包 CHANNEL_EOF 16:14:44.222 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel -- 得到 EOF 16:14:44.223 [reader] TRACE net.schmizz.sshj.transport.Decoder -- 收到数据包 #16: 61 00 00 00 00 16:14:44.223 [reader] TRACE net.schmizz.sshj.transport.TransportImpl -- 收到数据包 CHANNEL_CLOSE 16:14:44.223 [main] DEBUG net.schmizz.sshj.connection.channel .direct.SessionChannel -- 发送关闭 16:14:44.223 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel -- Got close 16:14:44.224 [main] TRACE net.schmizz.sshj.transport .Encoder -- 编码数据包 #11:61 00 00 00 00 16:14:44。225 [main] DEBUG net.schmizz.concurrent.Promise -- 等待 <> 16:14:44.225 [reader] DEBUG net.schmizz.sshj.connection.ConnectionImpl -- 忘记session频道 (#0) 16:14:44.225 [reader] DEBUG net.schmizz.concurrent.Promise -- 将 <> 设置为SOME

我的代码很简单:

import com.decodified.scalassh._

val sshClient = new SshClient(new HostConfig(login = PasswordLogin(userName, SimplePasswordProducer(password)), hostName))


sshClient.download(filePath, targetDirectory)

现在,虽然下载成功完成,并且应用程序在下载命令后继续执行,但应用程序本身并没有退出。

有任何想法吗?

4

1 回答 1

0

到 RichSshClient 的隐式转换似乎在这背后。我通过创建一个新类——“SshClientEnhanced”来避免隐式转换为 RichSshClient,它使用 ScpTransferable 扩展了 SshClient。在 SshClientEnhanced 实例上调用下载方法可以正常工作。

于 2016-03-30T06:51:04.843 回答