2016-03-29 7 views
0

Ich benutze Scala-ssh 0.7.0, um eine Datei von einem Remote-Server herunterladen.Anwendung wird nicht nach dem Herunterladen einer Datei mit scala-ssh

Der Download selbst scheint erfolgreich zu sein (ich kann die heruntergeladene Datei finden). Hier ist der letzte Teil des Protokollausgabe:

16: 14: 43,824 [Main] TRACE net.schmizz.sshj.xfer.LoggingTransferListener - übertragen 100% der log-file.txt 16: 14: 43,824 [main] INFO net.schmizz.sshj.common.StreamCopier - 44.82421875 KiB übertragen in 1.572 Sekunden (28.514134064885496 KiB/s) 16: 14: 43.825 [Haupt] DEBUG net.schmizz.sshj.xfer.scp.SCPEngine - - Remote stimmt der Übertragung zu 16: 14: 43.826 [main] DEBUG net.schmizz.sshj.xfer.scp.SCPEngine - Signalisierung: Übertragung erfolgt 16: 14: 43.826 [main] TRACE net.schmizz.sshj.transport.Encoder - Codierpaket # 10: 5e 00 00 00 00 00 00 00 01 00 16: 14: 43.826 [main] DEBUG net.schmizz.sshj.connection.channel.Window $ Remote - Consuming von 1 bis 2097148 16: 14: 44.220 [Leser] TRACE net.schmizz.sshj.transport.Decoder - Empfangene Paket # 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 [Leser] TRACE net.schmizz.sshj.transport.TransportImpl - Empfangenes Paket CHANNEL_REQUEST 16: 14: 44.221 [Leser] DEBUG net.schmizz .sshj.connection.channel.direct.SessionChannel - Got chan Anfrage nach exit-status 16: 14: 44.222 [Leser] TRACE net.schmizz.sshj.transport.Decoder - Receive d Paket # 15: 60 00 00 00 00 16: 14: 44.222 [Leser] TRACE net.schmizz.sshj.transport.TransportImpl - Empfangenes Paket CHANNEL_EOF 16: 14: 44.222 [Leser] DEBUG net.schmizz. sshj.connection.channel.direct.SessionChannel - Got EOF 16: 14: 44.223 [Leser] TRACE net.schmizz.sshj.transport.Decoder - Empfangene Paket # 16: 61 00 00 00 00 16: 14: 44.223 [Leser] TRACE net.schmizz.sshj.transport.TransportImpl - empfangenes Paket CHANNEL_CLOSE 16: 14: 44,223 [Main] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Senden Schließen 16: 14: 44.223 [Leser] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Schließen 16: 14: 44.224 [main] TRACE net.schmizz.sshj.transport.Encoder - Codierpaket # 11: 61 00 00 00 00 16: 14: 44.225 [main] DEBUG net.schmizz.concurrent.Promise - - Warten auf <> 16: 14: 44.225 [Leser] DEBUG net.schmizz.sshj.connection.ConnectionImpl - Vergessens session Kanal (# 0) 16: 14: 44.225 [Leser] DEBUG net.schmizz.concurrent.Promise - Einstellung <> zu SOME

Mein Code ist sehr einfach:

import com.decodified.scalassh._ 

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


sshClient.download(filePath, targetDirectory) 

Obwohl der Download erfolgreich abgeschlossen wurde und die Anwendungsausführung nach dem Download-Befehl fortgesetzt wird, wird die Anwendung selbst nicht beendet.

Irgendwelche Ideen?

+0

Darf es mit https://github.com/sirthias/scala-ssh/pull/27 verwandt sein? – pedrofurla

+0

Danke @pedrofurla. Es scheint so zu sein, dass es verbunden ist - wenn die implizite Konvertierung in RichSshClient vermieden wird, verschwindet das Problem. –

Antwort

0

Die implizite Konvertierung in RichSshClient scheint dahinter zu stehen. Ich vermied die implizite Konvertierung zu RichSshClient, indem ich eine neue Klasse - 'SshClientEnhanced' erstellte, die SshClient mit ScpTransferable erweitert. Das Aufrufen der Download-Methode für eine Instanz von SshClientEnhanced funktioniert einwandfrei.