org.eclipse.jetty.server.handler
Class ShutdownHandler
java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AggregateLifeCycle
org.eclipse.jetty.server.handler.AbstractHandler
org.eclipse.jetty.server.handler.ShutdownHandler
- All Implemented Interfaces:
- Handler, Destroyable, Dumpable, LifeCycle
public class ShutdownHandler
- extends AbstractHandler
A handler that shuts the server down on a valid request. Used to do "soft" restarts from Java. If _exitJvm ist set to true a hard System.exit() call is being
made.
This handler is a contribution from Johannes Brodwall: https://bugs.eclipse.org/bugs/show_bug.cgi?id=357687
Usage:
Server server = new Server(8080);
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[]
{ someOtherHandler, new ShutdownHandler(server,"secret password") });
server.setHandler(handlers);
server.start();
public static void attemptShutdown(int port, String shutdownCookie) {
try {
URL url = new URL("http://localhost:" + port + "/shutdown?cookie=" + shutdownCookie);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.getResponseCode();
logger.info("Shutting down " + url + ": " + connection.getResponseMessage());
} catch (SocketException e) {
logger.debug("Not running");
// Okay - the server is not running
} catch (IOException e) {
throw new RuntimeException(e);
}
}
Constructor Summary |
ShutdownHandler(Server server,
String shutdownToken)
Creates a listener that lets the server be shut down remotely (but only from localhost). |
Methods inherited from class org.eclipse.jetty.util.component.AggregateLifeCycle |
addBean, addBean, contains, dump, dump, dump, dump, dump, dumpStdErr, getBean, getBeans, getBeans, isManaged, manage, removeBean, removeBeans, unmanage |
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle |
addLifeCycleListener, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop, toString |
ShutdownHandler
public ShutdownHandler(Server server,
String shutdownToken)
- Creates a listener that lets the server be shut down remotely (but only from localhost).
- Parameters:
server
- the Jetty instance that should be shut downshutdownToken
- a secret password to avoid unauthorized shutdown attempts
handle
public void handle(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,
ServletException
- Description copied from interface:
Handler
- Handle a request.
- Parameters:
target
- The target of the request - either a URI or a name.baseRequest
- The original unwrapped request object.request
- The request either as the Request
object or a wrapper of that request. The AbstractHttpConnection.getCurrentConnection()
method can be used access the Request object if required.response
- The response as the Response
object or a wrapper of that request. The AbstractHttpConnection.getCurrentConnection()
method can be used access the Response object if required.
- Throws:
IOException
ServletException
getRemoteAddr
protected String getRemoteAddr(HttpServletRequest request)
setExitJvm
public void setExitJvm(boolean exitJvm)
Copyright © 1995-2012 Mort Bay Consulting. All Rights Reserved.