Java で Ganymed ライブラリを使用して接続をテストしようとすると、少し問題が発生します。2 週間前は問題なく正常に動作していましたが、現在は次のエラー メッセージが表示されています。
The execute request failed.
これは、Ganymed の「execCommand()」メソッドと関係があります。WinSCP を使用して接続すると、すべてが機能しますが、Java を使用して接続しようとするとエラーが発生します。ファイアウォールも原因である可能性があるかどうかも考えています。
tail コマンドを実行するために使用しているコードは次のとおりです。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
public class SSHTesting {
public static void main(String[] args) {
try{ Connection conn = new Connection("eappdev101.momentum.co.za");
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword("username", "password");
if (isAuthenticated == false) {
System.out.println("Credentials are wrong.");
}
Session sess = conn.openSession();
sess.execCommand("tail -f /logs/SystemOut.log");
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
sess.close();
conn.close();
System.out.println("Done");
}
catch(Exception ie){
System.out.println(ie.getMessage());
}
}
}
どんな光の小屋も高く評価されています。前もって感謝します。