2016-03-29 33 views
0

我正在使用scala-ssh 0.7.0從遠程服務器下載文件。使用scala-ssh下載文件後不會退出應用程序

下載本身似乎是成功的(我可以找到下載的文件)。這裏是日誌輸出的最後部分:

16:14:43.824 [主要] TRACE net.schmizz.sshj.xfer.LoggingTransferListener - 轉移的 log-file.txt 16 100%: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]調試 net.schmizz.sshj.connection.channel.Window $遠程 - 消費1 下至2097148 16:14:44.220 [讀者] 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 [reader] TRACE net.schmizz.sshj.transport.TransportImpl - 收到的數據包CHANNEL_REQUEST 16:14:44.221 [reader] DEBUG net.schmizz .sshj.connection.channel.direct.SessionChannel - Got chan 請求exit-status 16:14:44.222 [reader] TRACE net.schmizz.sshj.transport.Decoder - Receive數據包#15:60 00 00 00 00 16:14:44.222 [讀者] TRACE net.schmizz.sshj.transport.TransportImpl - 收到的數據包 CHANNEL_EOF 16:14:44.222 [reader]調試 net.schmizz。 sshj.connection.channel.direct.SessionChannel - Got EOF 16:14:44.223 [reader] TRACE net.schmizz.sshj.transport.Decoder - 接收數據包#16:61 00 00 00 00 16:14:44.223 [閱讀] TRACE net.schmizz.sshj.transport.TransportImpl - 收到的數據包 CHANNEL_CLOSE 16:14:44.223 [main]調試 net.schmizz.sshj.connection.channel.direct.SessionChannel - 發送 關閉16: 14:44.223 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - 關閉 16:14:44.224 [main] TRACE net.schmizz.sshj.transport.Encoder - 編碼數據包#11:61 00 00 00 00 16:14:44.225 [main]調試 net.schmizz.concurrent.Promise - - 等待<> 16:14:44.225 [讀者] DEBUG net.schmizz.sshj.connection.ConnectionImpl - 忘記session通道(#0) 16:14:44.225 [讀者] 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) 

現在,雖然下載成功完成,並且應用程序在下載命令後繼續執行,但應用程序本身不會退出。

任何想法?

+0

它可能與https://github.com/sirthias/scala-ssh/pull/27有關嗎? – pedrofurla

+0

謝謝@pedrofurla。它似乎被鏈接 - 當避免隱式轉換爲RichSshClient時,問題消失。 –

回答

0

隱式轉換爲RichSshClient似乎是背後的。 我通過創建一個新類 - 'SshClientEnhanced'來避免對RichSshClient的隱式轉換,該類使用ScpTransferable擴展了SshClient。在SshClientEnhanced實例上調用下載方法可以正常工作。

相關問題