【发布时间】:2013-02-20 13:47:45
【问题描述】:
我是 Jetty 和客户端/服务器架构的新手。
我设法在 Eclipse 中编写了一个码头服务器,它可以工作。
但是我怎样才能停止一个码头服务器呢?我听说过 stop.jar 和 start.jar。我在哪里可以找到它?是否集成在 jetty-all-jar 中?
【问题讨论】:
标签: jetty
我是 Jetty 和客户端/服务器架构的新手。
我设法在 Eclipse 中编写了一个码头服务器,它可以工作。
但是我怎样才能停止一个码头服务器呢?我听说过 stop.jar 和 start.jar。我在哪里可以找到它?是否集成在 jetty-all-jar 中?
【问题讨论】:
标签: jetty
各种jetty-all.jar 工件可用于嵌入式码头。如果你决定使用这个 jar,你必须自己管理启动/关闭。
更新:2015:从 Jetty 9 开始,不推荐使用 jetty-all.jar 作为依赖项。这是因为从 Jetty 9 开始,现在不可能在单个聚合 jar 中满足“所有”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。
解压jetty-distribution 后,您会在最顶部的目录中找到start.jar。这可以用作以下内容。
启动jetty的进程:
$ java -jar start.jar STOP.PORT=28282 STOP.KEY=secret
停止码头的进程:
$ java -jar start.jar STOP.PORT=28282 STOP.KEY=secret --stop
【讨论】:
如果 jetty 作为 maven 插件,您可以通过按 Ctrl+C 停止服务器,然后按 Y 确认终止。
【讨论】: