2016-03-29 14 views
0

scala-ssh 0.7.0を使用してリモートサーバからファイルをダウンロードしています。scala-sshでファイルをダウンロードした後にアプリケーションが終了しない

ダウンロード自体は成功したようです(ダウンロードしたファイルが見つかります)。

16:14: net.schmizz.sshj.xfer.LoggingTransferListener 43.824 [メイン] TRACE - log-file.txt 16の100%転写:ここで、ログ出力の最後の部分である14:43.824 [メイン] INFO net.schmizz.sshj.common.StreamCopier - 44.82421875 KiBは で転送されます。1.572秒(28.514134064885496KiB/s)16:14:43.825 [メイン] DEBUG net.schmizz.sshj.xfer.scp.SCPEngine - - リモート承諾転送完了 16:14:43.826 [main] 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 [main] DEBUG 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 16:14:44.221 [読者] TRACE net.schmizz.sshj.transport.TransportImpl - 受信パケットCHANNEL_REQUEST 16:14:44.221 [読者] DEBUG net.schmizz .sshj.connection.channel.direct.SessionChannel - チャンネルが見つかりました リクエストexit-status 16:14:44.222 [読者] TRACE net.schmizz.sshj.transport.Decoder - 受信dパケット#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 - GOF 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 - 終了しました[メイン] TRACE net.schmizz.sshj.transport.Encoder - エンコードパケット#11:61 00 00 00 00 16:14:44.225 [メイン] DEBUG net.schmizz.concurrent.Promise - - > 待ち: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への暗黙的な変換がこれの背後にあるようです。 新しいクラスを作成することで、RichSshClientへの暗黙的な変換を回避しました.SshClientをScpTransferableで拡張した 'SshClientEnhanced'です。 SshClientEnhancedのインスタンスでダウンロードメソッドを呼び出すと正常に動作します。