0

我正在使用在 xml 中配置的码头服务器,如下所示:http ://wiki.eclipse.org/Jetty/Reference/jetty.xml

我需要能够使用 java 代码关闭此服务器,但我不知道如何检索服务器的句柄。我完全不知道如何做到这一点,而且这几天一直困扰着我。任何见解,即使只是一些可能有用的阅读材料,都值得赞赏。

如果需要,请索取更多信息。


更新

我根据以下代码在 jetty.xml 中的处理程序列表中添加了一个 ShutdownHandler:

Server server = new Server(8080);
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[]
{ someOtherHandler, new ShutdownHandler(server,"secret password") });
server.setHandler(handlers);
server.start();

但是,我对如何完成它有点不确定,而且我不知道有任何真正的方法可以检查它是否不正确。我可以从配置标签中以这种方式引用 Jetty 服务器吗?

<Item>
 <New id="ShutdownHandler" class="org.eclipse.jetty.server.handler.ShutdownHandler">
  <Arg><Ref id="Server"/></Arg>
  <Arg type="java.lang.String">password</Arg>
 </New>
</Item>

另外,我对如何在URL url = new URL("http://localhost:" + port + "/shutdown?token=" + shutdownCookie);

它与密码或密钥有什么关系吗?java.net.SocketException: Unexpected end of file from server因为我都试过了,当被叫到时,两者都给了我connection.getResponseCode();

4

1 回答 1

1

这是一种方法:

http://www.eclipse.org/jetty/documentation/current/shutdown-handler.html

您可以在 xml 中配置处理程序,然后使用一个小的 java 主类来停止它。我不知道您是否想像您最初要求的那样严格使用 jetty.xml 进行关机。如果您正在使用可以使用的分发(如果使用 jetty.xml,通常是这种情况)启动,还有一个 STOP 键机制,我将在此处链接到:

http://www.eclipse.org/jetty/documentation/current/quickstart-running-jetty.html#quickstart-stopping-jetty

于 2013-08-16T21:29:55.940 回答