这真的很奇怪,为什么zehon将我的日食位置和我的SFTP密码作为FileSystemException的一部分返回?

我已检查远程主机确实是SFTP服务器,并且客户端正在使用SFTP连接。

Zehon API here

堆栈跟踪

 Reading file from C:\srcFolde\FileToBeUploaded.zip
    com.zehon.exception.FileTransferException:
    org.apache.commons.vfs.FileSystemException:
    Unknown message with code:
        "C:<location of eclipse>/<sftp password>?" does not exist
        at int result = sftp.sendFile(filePath, ftpDestFolder);




SFTPClient sftp = new SFTPClient(ftpServer, 22, ftpUserName, ftpPassword, true);
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(fileName);
            String filePath=fileName.substring(0, fileName.length()-4) + ".zip";
            String ftpDestFolder="\\sftpDestFolder";
            int result = sftp.sendFile(filePath, ftpDestFolder);
            Logger.debug("sftp result = " + result);
        } catch (FileTransferException e) {
            e.printStackTrace();
            return false;
        } finally {
            try {
                if (fis != null) {
                    fis.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

最佳答案

您使用了错误的构造函数。从Javadocs

http://www.zehon.com/javadocs/com/zehon/sftp/SFTPClient.html

您已经在期望ftpPassword的地方传递了privateKeyPath

10-07 23:40