我正在使用在xml中配置的jetty服务器,如下所示: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();
。
答案 0 :(得分:1)
这是一种方法:
http://www.eclipse.org/jetty/documentation/current/shutdown-handler.html
你可以在xml中配置处理程序,然后有一个小的java主类来阻止它。我不知道您是否希望使用严格的jetty.xml进行关闭,就像您最初要求的那样。如果您正在使用可以使用的分发(通常是使用jetty.xml),还有一个STOP键机制,我将链接到此处: