사용자 입력을 요청하고 그 입력을 서버 측 컴퓨터의 외부 프로그램의 명령 줄 인수로 전달하는 작은 웹 응용 프로그램을 개발 중입니다.Java 서블릿에서 외부 명령을 어떻게 실행합니까?
public class WorkflowServlet extends HttpServlet
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String workflow = request.getParameter("workflow");
String preInflation = request.getParamater("preInflation");
String email = request.getParamater("email");
try {
executeShellCommand("java ClusterProcess " + username + " "
+ workflow + " " + preInflation + " " + email);
} catch (Exception e) {
response.sendRedirect("WorkflowAction.jsp"); return;
}
response.sendRedirect("WorkflowInProgress.jsp");
}
}
public static void executeShellCommand(String command) {
Runtime.getRuntime().exec(command.split(" ")).waitFor();
}
}
아무런 예외도 발생하지 않습니다. 아무 것도하지 않는 것 같습니다. ShellCommmand를 실행하기 위해 "touch test.txt"와 같이 간단하게 전달하더라도 아무 일도하지 않습니다. 명령 줄을 통해 수동으로 명령을 성공적으로 실행할 수 있습니다.
어떻게해야합니까?
왜 "분할"? – davogotland
또한 왜 waitFor에서 반환 된 값을 사용하지 않습니까? 그것은 당신에게 뭔가를 말해 줄 수 있습니다. – davogotland
실행중인 URL을 게시 할 수 있습니까? (실제로는 그렇지 않습니다. 사용자 입력을 이스케이프하지 않을 것입니다 !!) –