2013-02-20 65 views
12

我是Jetty和客戶端/服務器體系結構的新手。如何停止Jetty

我成功地在eclipse中編寫了一個jetty服務器,它可以工作。

但我怎麼能阻止碼頭服務器?我聽說了關於stop.jar和start.jar的一些信息。我在哪裏可以找到它?它是否集成在jetty-all-jar中?

回答

20

各種jetty-all.jar工件可用於嵌入式碼頭使用。如果你決定使用這個jar,你必須管理你自己的啓動/關閉。

更新:2015:自Jetty 9起,不推薦使用jetty-all.jar作爲依賴項。這是因爲從碼頭9開始,現在不可能在單個集合罐中滿足「全部」Jetty。有些Jetty組件不能包含在內,因爲它們會導致這個聚集jar問題。 Jetty的未來,HTTP/2的支持,也使得這個聚合jar作爲一個依賴關係不太有用。

典型的嵌入模式使用

啓動服務器線程:

Server server = new Server(); 
// various server configuration lines 
// ... 

// Start server (on current thread) 
server.start(); 

// Have current thread wait till server is done running 
server.join(); 

另一個線程,告訴服務器關閉

// Have server stop running 
server.stop(); 

此時原線程在server.join();上的等待已完成,該線程繼續運行。

標準發佈使用

如果使用可從download.eclipse.org/jetty/標準分發您有可用於啓動/停止碼頭本身start.jar

一旦你解開了你的碼頭髮行版,你會在最上面的目錄中找到一個start.jar。這可以用作以下內容。

啓動進程的碼頭:

$ java -jar start.jar STOP.PORT=28282 STOP.KEY=secret 

該過程停止碼頭:

$ java -jar start.jar STOP.PORT=28282 STOP.KEY=secret --stop 
+0

感謝您的回答。我使用了stop(),但我仍然能夠發送請求,所以我認爲它不起作用。但我認爲,我的問題是,我開始的不止一次。現在我有一個開始和重新啓動的方法,我可以在終端中調用,它的工作原理。我將不得不爲我的啓動和停止方法添加認證,但這是另一個問題。 – Salvadora 2013-02-28 23:44:52

+0

嘿,你知道如果有一種重新啓動jetty而不恢復加入()的線程的方式嗎? – lisak 2013-06-27 07:21:11

2

如果碼頭作爲Maven插件,你按按Ctrl + Ç和停止服務器按Y確認終止。