2013-02-20 114 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确认终止。