这真的很奇怪,为什么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
。