Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “获取异常”;“会话中断”;通过jsch调用ftp服务器时_Java_Groovy_Jsch - Fatal编程技术网

Java “获取异常”;“会话中断”;通过jsch调用ftp服务器时

Java “获取异常”;“会话中断”;通过jsch调用ftp服务器时,java,groovy,jsch,Java,Groovy,Jsch,当我试图与ftp服务器连接以进行文件上载时,出现异常com.jcraft.jsch.JSchException:会话已关闭 代码在groovy中: String SFTPHOST = "########" int SFTPPORT = 22 String SFTPUSER = "########" String SFTPPASS = "########" String SFTPWORKINGDIR = "/QA/" ChannelSftp sftp = null Session session

当我试图与ftp服务器连接以进行文件上载时,出现异常
com.jcraft.jsch.JSchException:会话已关闭

代码在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客户端,其工作正常

请将您的问题包括您收到的实际错误消息,包括堆栈跟踪。这是它解决的其他问题…这是当前场景我调试了一点,发现在session.openChannel()方法中,它在以下行失败:如果(!isConnected){抛出新的JSchException(“会话关闭”);}那么您调试了
session.connect()了吗
要查看它是如何实现的,它既不连接也不引发异常?+如果不在任何地方指定主机密钥,您如何传递
StricHostKeyChecking=yes
?我已尝试设置StricHostKeyChecking=no,我得到了相同的异常。