当我尝试连接ftp服务器进行文件上传时,我遇到异常com.jcraft.jsch.JSchException: session is down
代码是groovy:
String SFTPHOST = "########"
int SFTPPORT = 22
String SFTPUSER = "########"
String SFTPPASS = "########"
String SFTPWORKINGDIR = "/QA/"
ChannelSftp sftp = null
Session session = null
try {
JSch jsch = new JSch()
session = jsch.getSession(SFTPUSER, SFTPHOST, SFTPPORT)
session.setPassword(SFTPPASS)
session.setConfig("StrictHostKeyChecking", "no")
session.setConfig("PreferredAuthentications",
"publickey,keyboard-interactive,password")
session.connect()
Channel channel = session.openChannel "sftp"
channel.connect()
sftp = channel as ChannelSftp
sftp.cd SFTPWORKINGDIR
File f = new File("Demo.csv")
sftp.put(new FileInputStream(f), f.getName())
//def fileList = sftp.ls("*")
println fileList.size()
} catch (Exception ex) {
ex.printStackTrace()
}
答案 0 :(得分:0)
我遇到了问题......实际上JSch不是FTP客户端,它是一个SSH客户端(包含SFTP实现)。我连接的ftp服务器不是ssh服务器。这就是为什么jsch无法与该ftp服务器连接的原因。我已经使用了apache commons ftp client并且工作正常