com.jcraft.jsch.JSchException:无法发送sftp请求

时间:2015-11-20 10:08:27

标签: jsch

基于WinSCP的相同连接使用帐户名,密码和私钥进行连接。但是从代码中尝试不断获得此异常。

代码:

try
{
    session.connect();
    System.out.println("session is alive:" + session.isConnected());
    channel = session.openChannel("sftp");
    channel.connect();

    channelSftp = (ChannelSftp) channel;
    channelSftp.connect();
    channelSftp.chmod(777, depDir);

}
catch (Exception e1)
{
    e1.printStackTrace();
    System.out.println("Manual Exception in updateDepositedFilePermission:" + CommonUtil.getExceptionString(e1));
}

输出:

session is alive:true
Manual Exception in updateDepositedFilePermission:com.jcraft.jsch.JSchException: failed to send sftp request
        at com.jcraft.jsch.RequestSftp.request(Unknown Source)
        at com.jcraft.jsch.ChannelSftp.start(Unknown Source)
        at com.jcraft.jsch.Channel.connect(Unknown Source)
        at com.app.sftp.CheckFTP.main(CheckFTP.java:730)

session is alive:true
com.jcraft.jsch.JSchException: failed to send sftp request
        at com.jcraft.jsch.RequestSftp.request(Unknown Source)
        at com.jcraft.jsch.ChannelSftp.start(Unknown Source)
        at com.jcraft.jsch.Channel.connect(Unknown Source)
        at com.app.sftp.CheckFTP.main(CheckFTP.java:730)

1 个答案:

答案 0 :(得分:1)

不确定这是主要问题,但您要拨打Channel.connect()两次。

首先来到这里:

channel.connect();

再来一次:

channelSftp.connect();

删除第二个电话。