Java 使用xml配置的服务器以编程方式关闭Jetty

Java 使用xml配置的服务器以编程方式关闭Jetty,java,xml,jetty,Java,Xml,Jetty,我使用的jetty服务器是用xml配置的,如下所示: 我需要能够使用java代码关闭此服务器,但我不知道如何检索服务器的句柄。我完全不知道该怎么做,这已经困扰了我好几天了。任何见解,甚至只是一些可能有用的阅读材料,都是值得赞赏的 如有需要,请索取更多信息 更新 我已根据以下代码将ShutdownHandler添加到jetty.xml中的处理程序列表中: Server server = new Server(8080); HandlerList handlers = new HandlerLis

我使用的jetty服务器是用xml配置的,如下所示:

我需要能够使用java代码关闭此服务器,但我不知道如何检索服务器的句柄。我完全不知道该怎么做,这已经困扰了我好几天了。任何见解,甚至只是一些可能有用的阅读材料,都是值得赞赏的

如有需要,请索取更多信息


更新

我已根据以下代码将ShutdownHandler添加到jetty.xml中的处理程序列表中:

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=newurl(“http://localhost:“+port+”/shutdown?token=“+shutdownCookie”)

这和密码或钥匙有关吗?因为我尝试了这两种方法,并且两种方法都给了我
java.net.SocketException:当
connection.getResponseCode()时,来自服务器的文件意外结束

这是一种方法:

您可以在xml中配置处理程序,然后使用一个小型java主类来停止它。我不知道您是否希望严格按照您最初的要求使用jetty.xml关闭。如果您正在启动发行版(如果使用jetty.xml,您通常会使用该发行版),也有一个停止键机制,我将在此处链接到该发行版:


谢谢你的帮助。我猜这个问题的措辞有点笨拙,我只是说jetty服务器是用xml配置的,而不是说我想严格使用jetty.xml关闭。关于提供的代码,我仍然有一些问题。我已经用我遇到的一些问题更新了主要帖子,请看一看。在服务器中切换dumpOnStartup,这应该打印出处理程序链,并让您知道它已正确连接。它似乎已正确连接,但仍然不起作用。我仍然不知道为什么
connection.getResponseCode()