我想從運行在Tomcat 6,Windows 7,64位上的servlet調用外部Java類文件。 這個問題上已經有一些線索,但沒有人真的幫助我。從webapp執行外部Java程序
Fyi,如果我直接從shell運行它,我已經能夠成功完成這項工作。
im使用一個ProcessBuilder
到這樣
ProcessBuilder bp = new ProcessBuilder("cmd.exe","/C","java", "TheExternalClass", "ParameterA" });
我還從所創建的過程消耗errorStream和的inputStream執行該命令。
當我從servlet運行它時,它只是失速。
例如,如果我將java命令切換到dir,它可以按預期工作,這使我相信它與任何內存有關,或者從Tomcat啓動新的Java Process或類似的問題。
任何人都有一個指針或一個好主意,如何解決這個問題?
在話題的一些其他職位:
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
感謝很多的閱讀。
謝謝你回覆Aaron。 你是對的,我打電話給p.waitFor()和我從創建的進程讀取errorStream和inputStream,但我沒有真正做它。你是否建議如果不讀取這些流並且不調用p.waitFor()它會起作用? –
好吧,JSP不會再阻塞,但是如果它向stdout/stderr寫入超過4KB的數據,並且出現錯誤時,這個過程可能永遠不會結束,您永遠不會知道。 –