通过 jsch 调用 ftp 服务器时获取异常"session is down"



当我尝试与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()
}

我得到了问题...实际上,jsch不是FTP客户端,它是SSH客户端(随附的SFTP实现(。我正在连接的FTP服务器不是SSH服务器。这就是为什么JSCH无法与该FTP服务器连接的原因。我已经使用了Apache Commons FTP客户端及其工作正常

相关内容

最新更新