我对Jetty和客户端/服务器架构都比较陌生。
我在Eclipse中写了一个Jetty服务器并且它也能正常工作。
但是,我该如何停止Jetty服务器呢? 我听说过stop.jar和start.jar,但我应该去哪里找到它们呢? 它们是否已经集成在jetty-all-jar中了?
我对Jetty和客户端/服务器架构都比较陌生。
我在Eclipse中写了一个Jetty服务器并且它也能正常工作。
但是,我该如何停止Jetty服务器呢? 我听说过stop.jar和start.jar,但我应该去哪里找到它们呢? 它们是否已经集成在jetty-all-jar中了?
各种jetty-all.jar
工件可用于嵌入式Jetty使用。如果您决定使用此jar,则必须管理自己的启动/关闭。
更新:2015年:从Jetty 9开始,将jetty-all.jar
用作依赖项已不建议使用。这是因为从Jetty 9开始,现在不可能在单个聚合jar中满足Jetty的“全部”。有些Jetty组件无法包含在内,因为它们会导致此聚合jar出现问题。具有HTTP/2支持的Jetty的未来也使此聚合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本身。
一旦您解压了jetty发行版,您会在顶层目录中找到一个start.jar
。这可以按以下方式使用。
启动jetty的进程:
$ java -jar start.jar STOP.PORT=28282 STOP.KEY=secret
停止Jetty的过程:
$ java -jar start.jar STOP.PORT=28282 STOP.KEY=secret --stop