2012-05-21 112 views
1

我正在使用jettyrunner來執行我的war文件。我正在使用命令java -jar jetty runner ex.war.But從我的Java應用程序運行這個碼頭服務器,通過執行java.My中的這些命令問題是第一次它的工作好,但第二次,如果我再次執行另一個戰爭文件與相同的代碼執行舊war.i已經找到原因,舊的碼頭服務器繼續running.How我可以停止從java這個服務器爲了啓動另一個戰爭的碼頭服務器。如何停止執行碼頭亞軍

回答

2

一個選擇應該是:

http://wiki.eclipse.org/Jetty/Howto/Secure_Termination

另一個辦法是使用ShutdownHandler:

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ShutdownHandler.java

還是不要直接從Java代碼中使用的碼頭亞軍一樣,並且只需編寫一個小的嵌入式用法:

http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty

+0

Secure_Termination文章很好,它解釋瞭如何啓動停止端口和停止鍵的jetty-runner,但是id沒有解釋如何停止它。 – ENargit

0

原來,jetty-runner.jar沒有一個功能來阻止現有的碼頭流程使用stop-portstop-key

我找到了答案在https://github.com/jetty-project/jetty-documentation/blob/master/src/docbkx/administration/runner/jetty-runner.xml

然後,從不同的終端停止碼頭,你需要 提供相同的端口和關鍵信息。對於這個你要麼 需要碼頭的本地安裝,jetty-maven-pluginjetty-ant插件,或者編寫自定義類

幸運的是,我正在執行gradle這個身材,所以jetty-ant滿足了我的需求。