Question : I want to execute java jar file from webservice in spring boot project. and want to monitor it.
Problem : I am able to execute this process but problem is that process did not processed further.
I want to know why this process is waiting and why its not processed. how can i monitor its progress.
its get processed on following conditions:
- Once i stop the spring boot project or tomcat.
- Its get processed if i remove
process.waitFor();
I tried the solution from this, that is execute the process from another thread.
My web service call
@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";
}