当前位置: 首页 > 面试题库 >

在JSCH中使用连接池

王长卿
2023-03-14
问题内容

我正在使用JSCH进行sftp文件上传。在当前状态下,每个线程都会在需要时打开和关闭连接。

是否可以在JSCH中使用连接池,以避免由于大量打开和关闭连接而导致的开销?

这是从线程内部调用的函数的示例

 public static void file_upload(String filename) throws IOException {
    JSch jsch = new JSch();
    Session session = null;
    try {
        session = jsch.getSession("user", "server_name", 22);
        session.setConfig("StrictHostKeyChecking", "no");
        session.setPassword("super_secre_password");
        session.connect();

        Channel channel = session.openChannel("sftp");
        channel.connect();
        ChannelSftp sftpChannel = (ChannelSftp) channel;

        FileInputStream inputSrr = new FileInputStream(filename);  
        try {  
            sftpChannel.put(inputSrr, "/var/temp/"+filename);  
        } catch (SftpException e) {  
            e.printStackTrace();

        } finally {  
            if (inputSrr != null) {  
                inputSrr.close();  
            }  
        }

        sftpChannel.exit();
        session.disconnect();
    } catch (JSchException e) {
        e.printStackTrace();
    } catch (SftpException e) {
        e.printStackTrace();
    }
}

问题答案:

为此,我希望使用commons-pool。;)



 类似资料:
  • 嗨,我正试图通过ssh隧道连接到服务器上的数据库,但我甚至无法连接Jsch会话。我试图在GWT中作为我的后端代码的一部分来做这件事。这是服务器端代码的实现部分。我对服务器一般不是那么熟悉。通常在端子I类型中: ssh-x username@xxxx.xxx.edu 然后系统提示我输入密码,我输入密码,然后我就进入了。 所以在java中我的代码如下: 我已经双重检查了用户名、密码和主机字符串,它们都

  • 问题内容: 我在通过JSch创建到远程SFTP服务器的会话时遇到问题: 我用来通过外壳连接sftp服务器的命令是: 及其正常工作,但是当我尝试使用Java(JSch)时,我遇到了超时异常。Java代码是 我得到的异常是: com.jcraft.jsch.JSchException:超时:未建立套接字 我想它来了,因为我没有在使用shell命令时设置我正在使用的with 选项。如果是这样,那么如何在

  • 我使用的是camel version2.13.1和camel-ftp version2.13.1。我正试图通过camel路由连接到sftp服务器。我得到了一些与jCraft Jsch异常相关的错误,如下所示。

  • 我目前正在制作一个Java应用程序,它将执行远程Windows机器的命令(从命令提示符)。 为了开发这个,我尝试了以下方法: > 目标计算机信息: Windows x64工作站 请引导到这个,它可以用Jsch库做,如果不是,你可以推荐哪种方法。 您可以假设以下情况: 我不想在目标机器中有任何代码。因此,一个Java应用程序驻留在我的工作站上,只执行一些简单的窗口命令,如目标窗口机器中的dir或st

  • 我要连接的代码: 命令行版本的相同的程序,我可以运行没有任何例外!另一个来自JCraft[link]http://www.jcraft.com/jsch/examples/SFTP.java.html网站的SFTP示例运行良好。

  • 我试图连接到localhost使用ssh键,但我仍然得到"Auth失败"错误。 以下是方法实现: 我使用linux终端创建了我的公钥/私钥对,如下所示: 我没有说任何短语。下一步: 最后 然后当我运行我的程序时,我得到一个错误: 有什么想法吗?我的密钥是OpenSSH类型,从行开始 "-----开始RSA私人密钥-----"