com.jcraft.jsch.JSchException: le canal n'est pas ouvert lors de l'ouverture d'un canal dans jsch

Lors de la connexion à un hôte distant à l'aide de jsch version 0.1.51 nous l'occasion de rencontrer l'exception suivante lors de l'appel de Channel.connect() sur un ChannelExec.

com.jcraft.jsch.JSchException: channel is not opened.
    at com.jcraft.jsch.Channel.sendChannelOpen(Channel.java:765)
    at com.jcraft.jsch.Channel.connect(Channel.java:151)
    at com.jcraft.jsch.Channel.connect(Channel.java:145)

Le code que nous utilisons, après la session a été créé, c'est:

ChannelExec channel = (ChannelExec) session.openChannel("exec");
channel.setCommand("echo hello");
channel.connect(); //Error here

La Channel.connect() appel renvoie généralement en moins de 100 ms, mais lorsque cette erreur apparaît à l'appel se bloque pendant plus de 20 secondes avant de jeter l'exception.

OriginalL'auteur K Erlandsson | 2015-11-24