0

次のように、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>

また、シャットダウン Cookie を取得する方法について少し混乱しています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

これは 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 に答える