質問:春のブートプロジェクトでwebserviceからjava jarファイルを実行します。それを監視したいと考えています。spring webserviceとmonitorからプロセスを実行しますか?
問題:私はこのプロセスを実行することができますが、問題はプロセスがそれ以上処理しなかったことです。
このプロセスがなぜ待っているのか、なぜ処理されていないのかを知りたい。どのように私はその進歩を監視することができます。
そのは、以下の条件で処理されます:私は春ブーツプロジェクトやTomcatを停止すると
- 。私はthisから解決策を試してみました
process.waitFor();
削除する場合
私のWebサービスの呼び出し
@RequestMapping(value="/startAnalysis", method=RequestMethod.POST)
public String startAnalysis() {
List<String> cmd = new ArrayList<>();
cmd.add("java");
cmd.add("-jar");
cmd.add("test.jar");
try {
//Process p = Runtime.getRuntime().exec(cmd.toArray(new String[0]));
//ProcMon procMon = new ProcMon(cmd);
//Thread t = new Thread(procMon);
//t.setName("procMon");
//t.start();
ProcessBuilder processBuilder = new ProcessBuilder(cmd);
Process process = processBuilder.start();
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}
感謝。
私はプロセスを開始するので、そのプロセスの入力ストリームを読むことが重要ですか?私はそれを読んでいないと、プロセスは何かを待つことに気付いた。 – swan
サーバ外でコマンドラインから同じjar実行ファイルを実行しようとしましたか?それはその後終了するのですか? –