Приложение не закроется после загрузки файла с помощью scala-ssh

Я использую scala-ssh 0.7.0 для загрузки файла с удаленного сервера.

Сама загрузка вроде прошла успешно (скачанный файл могу найти). Вот последняя часть вывода журнала:

16:14:43.824 [основная] TRACE net.schmizz.sshj.xfer.LoggingTransferListener -- передано 100% log-file.txt 16:14:43.824 [основная] INFO net.schmizz.sshj.common.StreamCopier -- 44,82421875 КиБ передано за 1,572 секунды (28,514134064885496 КиБ/с) 16:14:43,825 [main] DEBUG net.schmizz.sshj.xfer.scp.SCPEngine -- Удаленный сервер соглашается на передачу 16:14 :43.826 [основная] DEBUG net.schmizz.sshj.xfer.scp.SCPEngine -- Сигнализация: передача завершена 16:14:43.826 [основная] TRACE net.schmizz.sshj.transport.Encoder -- Пакет кодирования #10: 5e 00 00 00 00 00 00 00 01 00 16:14:43.826 [основная] DEBUG net.schmizz.sshj.connection.channel.Window$Remote -- Использование на 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 [читатель] TRACE net.schmizz .sshj.transport.TransportImpl -- Получен пакет CHANNEL_REQUEST 16:14:44.221 [читатель] DEBU G net.schmizz.sshj.connection.channel.direct.SessionChannel -- Получен запрос канала для exit-status 16:14:44.222 [читатель] TRACE net.schmizz.sshj.transport.Decoder -- Получен пакет №15: 60 00 00 00 00 16:14:44.222 [читатель] TRACE net.schmizz.sshj.transport.TransportImpl -- Получен пакет CHANNEL_EOF 16:14:44.222 [читатель] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel -- Получен EOF 16:14:44.223 [читатель] 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 [основная] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel -- Отправка закрыть 16:14:44.223 [читатель] DEBUG net.schmizz.sshj.connection.channel.direct. SessionChannel -- Закрытие 16:14:44.224 [основная] TRACE net.schmizz.sshj.transport.Encoder -- Кодирование пакета №11: 61 00 00 00 00 16:14:44.225 [основная] DEBUG net.schmizz.concurrent. Обещание -- Ожидание ‹> 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)

Теперь, несмотря на успешное завершение загрузки и продолжение выполнения приложения после команды загрузки, само приложение не завершается.

Есть идеи?


person Barak BN    schedule 29.03.2016    source источник


Ответы (1)


Похоже, за этим стоит неявное преобразование в RichSshClient. Я избежал неявного преобразования в RichSshClient, создав новый класс — «SshClientEnhanced», который расширяет SshClient с помощью ScpTransferable. Вызов метода загрузки для экземпляра SshClientEnhanced работает нормально.

person Barak BN    schedule 30.03.2016