자바 웹 서비스 코드베이스 (BEA/Oracle Weblogic)를 상속 받았으며 웹 서비스에서 외부 백그라운드 애플리케이션을 시작/실행해야합니다.Java Web-Service에서 외부 프로세스를 시작하는 가장 좋은 방법은 무엇입니까?
ProcessBuilder pb = new ProcessBuilder(arg);
pb.start();
뿐만 아니라 :
난 이미 시도했습니다
Runtime.exec(cmdString);
을하지만 (즉, 시작 응용 프로그램도 과정이지만 작동이 중지 이런 방식으로 응용 프로그램을 시작할 때 이상한 행동을 경험하고 - 정상적인 명령 줄에서 수동으로 실행하면 응용 프로그램이 정상적으로 작동합니다.
외부 프로세스를 시작하는 더 좋은 방법이 있습니까?
편집 : ----------------------
나는이 문제에 도움이 되거 도움이 될 몇 가지 추가 정보가 있습니다.
- 우리가 이상적인 시나리오되지 않습니다 웹 서비스에 (
waitfor()
사용) 완료를 기다리지 완료하는 데 시간이 필요합니다 시작하려고하는 과정. - 은 예, 우리는 웹 서비스에서 시작하려고하는 프로세스가 동료 팀 구성원에 의해 만들어졌습니다 [큐 : ... 당신의 눈 롤 지금] 내가 프로세스 빌더를 사용하면 내가 성공 있었다
외부 응용 프로그램이 백그라운드 프로세스로 실행되는 bash 스크립트를 시작하려면 ("&"사용).
#!/bin/bash
java -jar myApp.jar &
이것은 분명히 분리 된 프로세스를 생성하지만 적어도 응용 프로그램은 계속 실행됩니다.
추가 질문에 감사드립니다. 나는 다음과 같은 내용을 포함하도록 나의 질문을 편집했다 : "예, 우리가 웹 서비스에서 시작하려고하는 과정은 동료 팀 구성원에 의해 만들어졌습니다. [큐 : 당신의 눈 롤 ... 지금]" – Nate
또한 동일한 행동이 증명되고 있습니다. Windows와 Linux 모두에서 – Nate