Tomcat 6, Windows 7, 64bit에서 실행중인 서블릿에서 외부 Java 클래스 파일을 호출하려고합니다. 이 주제에는 이미 몇 가지 스레드가 있지만 아무도 실제로 나를 돕지 않습니다.웹 응용 프로그램에서 외부 Java 프로그램 실행
Fyi, 쉘에서 직접 실행하면 성공적으로 수행 할 수 있습니다.
임이
ProcessBuilder bp = new ProcessBuilder("cmd.exe","/C","java", "TheExternalClass", "ParameterA" });
나는 또한 생성 된 프로세스에서 errorStream와 inputStream을 소모 것 같은 명령을 실행하기 위해 ProcessBuilder
를 사용하여.
서블릿에서 실행할 때 단순히 멈 춥니 다.
예를 들어 java 명령을 dir에 swith하면 예상대로 작동하지만 Tomcat이나 새로운 Java 프로세스를 시작하는 메모리 나 문제와 관련이 있다는 것을 알게되었습니다.
아무도 이것을 해결하는 방법에 대한 좋은 아이디어가 있습니까? 주제에
다른 어떤 게시물 : 많은 독서
http://www.javaworld.com/jw-12-2000/jw-1229-traps.html?page=1
call a java program from a webapp in tomcat server - the java program is out side of tomcat server
Tomcat fails to execute external java program
감사합니다.
답장을 보내 주셔서 감사합니다. 맞습니다. p.waitFor()를 호출하고 생성 된 프로세스에서 errorStream 및 inputStream을 읽는 중입니다. 그러나 실제로는 아무것도하지 않습니다. 그 스트림을 읽지 않고 p.waitFor()를 호출하면 작동하지 않을 것이라고 제안 하시겠습니까? –
글쎄, JSP는 더 이상 블록하지 않을 것이지만 프로세스가 stdout/stderr에 4KB 이상을 쓴다면 프로세스가 끝나지 않을 수 있으며 오류가 발생하면 결코 알 수 없습니다. –