初始化的坑
Hutool Sftp工具类中不带Session的构造方法中初始化方法如下图所示,是重用连接。所以如果多个线程同时使用如下构造方法,获取的session都是一样的,只要其中一个线程调用close方法时,Session也就关闭了,由于是重用连接,其他线程创建的Sftp也就挂了。所以当有多个线程使用Sftp时,请使用带有Session的构造方法。
Sftp sftp = new Sftp(sshHost, sshPort, sshUser, sshPass);
换成 ↓
Sftp sftp = new Sftp(JschUtil.openSession(sshHost, sshPort, sshUser, sshPass));
不带有Session的构造方法
带有Session的构造方法
构造方法带有Session的在初始化时会重新创建连接。