SSHJ: как использовать StatefulSFTPClient - PullRequest
0 голосов
/ 08 мая 2018

Я в замешательстве ... Я использую com / hierynomus / sshj SFTP-lib и следующий код дает мне ClassCastException:

SSHClient ssh = new SSHClient();
//... connect etc
StatefulSFTPClient client = (StatefulSFTPClient) ssh.newSFTPClient();

Мне нужен StatefulSFTPClient, но я не знаю, как его использовать ... Нужно ли расширять класс SSHClient с помощью:

public StatefulSFTPClient newStatefulSFTPClient()
        throws IOException {
    checkConnected();
    checkAuthenticated();
    return new StatefulSFTPClient(new SFTPEngine(this).init());
}

1 Ответ

0 голосов
/ 08 мая 2018

О, мой ... не самый яркий момент - это можно сделать так:

StatefulSFTPClient client = new StatefulSFTPClient(new SFTPEngine(ssh).init());

И для имитации SSHClient.newSFTPClient ():

            StatefulSFTPClient client;          
            if(ssh.isConnected()){
                if(ssh.isAuthenticated()){
                    client = new StatefulSFTPClient(new SFTPEngine(ssh).init());
                } else {
                    throw new IllegalStateException("Not authenticated");
                }
            } else {
                throw new IllegalStateException("Not connected");
            }
...