我可以配置JSch在连接失败时自动重新连接吗?

问题描述:

我正在使用用于SFTP连接的Java的JSch API。有时服务器可能会关闭一秒钟,或者连接可能很忙。在这些情况下,我需要重新连接到服务器三次,至少在我决定连接失败之前。我可以配置JSch在连接失败时自动重新连接吗?

是否JSch提供任何配置选项来自动执行此操作?

JSch没有这样的配置选项,但你可以简单地自己做。

Session s = new Session(...); 
for(int i = 0; i < MAX_TRIES; i++) { 
    try { 
     s.connect(); 
     break; 
    } 
    catch(JSchException ex) { 
     if(i == MAX_TRIES - 1) 
      throw ex; 
     continue; 
    } 
} 

执行此块后,连接会话或引发JSchException。