0

リモートサーバーからファイルをダウンロードするために scala-ssh 0.7.0 を使用しています。

ダウンロード自体は成功しているようです (ダウンロードしたファイルを見つけることができます)。ログ出力の最後の部分は次のとおりです。

16:14:43.824 [main] TRACE net.schmizz.sshj.xfer.LoggingTransferListener -- 16:14:43.824の 100% を転送 log-file.txt[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 -- チャン要求を取得exit-status16: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 を送信 [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] DEBUG net.schmizz.concurrent.Promise -- Awaiting <> 16:14:44.225 [reader] DEBUG net.schmizz.sshj.connection.ConnectionImpl -- 忘却sessionchannel (#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 への暗黙の変換がこの背後にあるようです。ScpTransferable で SshClient を拡張する新しいクラス「SshClientEnhanced」を作成することで、RichSshClient への暗黙的な変換を回避しました。SshClientEnhanced のインスタンスでダウンロード メソッドを呼び出すと、正常に動作します。

于 2016-03-30T06:51:04.843 に答える