Package org.eclipse.jetty.server.handler
Class ShutdownHandler
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.component.ContainerLifeCycle
-
- org.eclipse.jetty.server.handler.AbstractHandler
-
- org.eclipse.jetty.server.handler.AbstractHandlerContainer
-
- org.eclipse.jetty.server.handler.HandlerWrapper
-
- org.eclipse.jetty.server.handler.ShutdownHandler
-
- All Implemented Interfaces:
Handler
,HandlerContainer
,Container
,Destroyable
,Dumpable
,Dumpable.DumpableContainer
,LifeCycle
@Deprecated(since="2021-05-27") public class ShutdownHandler extends HandlerWrapper
Deprecated.The Eclipse Jetty and Apache Felix Http Jetty packages are no longer supported.A handler that shuts the server down on a valid request. Used to do "soft" restarts from Java. If _exitJvm is set to true a hard System.exit() call is being made. If _sendShutdownAtStart is set to true, starting the server will try to shut down an existing server at the same port. If _sendShutdownAtStart is set to true, make an http call to "http://localhost:" + port + "/shutdown?token=" + shutdownCookie in order to shut down the server. 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("secret password", false, true) }); server.setHandler(handlers); server.start();
public static void attemptShutdown(int port, String shutdownCookie) { try { URL url = new URL("http://localhost:" + port + "/shutdown?token=" + 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); } }
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jetty.server.handler.AbstractHandler
AbstractHandler.ErrorDispatchHandler
-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
Container.InheritedListener, Container.Listener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
-
-
Constructor Summary
Constructors Constructor Description ShutdownHandler(java.lang.String shutdownToken)
Deprecated.ShutdownHandler(java.lang.String shutdownToken, boolean exitJVM, boolean sendShutdownAtStart)
Deprecated.ShutdownHandler(Server server, java.lang.String shutdownToken)
Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description java.lang.String
getShutdownToken()
Deprecated.void
handle(java.lang.String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
Deprecated.Handle a request.boolean
isExitJvm()
Deprecated.boolean
isSendShutdownAtStart()
Deprecated.void
sendShutdown()
Deprecated.void
setExitJvm(boolean exitJvm)
Deprecated.void
setSendShutdownAtStart(boolean sendShutdownAtStart)
Deprecated.-
Methods inherited from class org.eclipse.jetty.server.handler.HandlerWrapper
destroy, getHandler, getHandlers, insertHandler, setHandler
-
Methods inherited from class org.eclipse.jetty.server.handler.AbstractHandlerContainer
findContainerOf, getChildHandlerByClass, getChildHandlers, getChildHandlersByClass, setServer
-
Methods inherited from class org.eclipse.jetty.server.handler.AbstractHandler
getServer
-
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dump, dump, dumpObject, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, unmanage, updateBean, updateBean, updateBeans
-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop, toString
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
-
Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle
addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
-
-
-
-
Constructor Detail
-
ShutdownHandler
@Deprecated public ShutdownHandler(Server server, java.lang.String shutdownToken)
Deprecated.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
-
ShutdownHandler
public ShutdownHandler(java.lang.String shutdownToken)
Deprecated.
-
ShutdownHandler
public ShutdownHandler(java.lang.String shutdownToken, boolean exitJVM, boolean sendShutdownAtStart)
Deprecated.- Parameters:
shutdownToken
- a secret password to avoid unauthorized shutdown attemptsexitJVM
- If true, when the shutdown is executed, the handler class System.exit()sendShutdownAtStart
- If true, a shutdown is sent as an HTTP post during startup, which will shutdown any previously running instances of this server with an identically configured ShutdownHandler
-
-
Method Detail
-
sendShutdown
public void sendShutdown() throws java.io.IOException
Deprecated.- Throws:
java.io.IOException
-
handle
public void handle(java.lang.String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException
Deprecated.Description copied from interface:Handler
Handle a request.- Specified by:
handle
in interfaceHandler
- Overrides:
handle
in classHandlerWrapper
- Parameters:
target
- The target of the request - either a URI or a name.baseRequest
- The original unwrapped request object.request
- The request either as theRequest
object or a wrapper of that request. The
method can be used access the Request object if required.HttpConnection.getCurrentConnection()
.getHttpChannel()
.getRequest()
response
- The response as theResponse
object or a wrapper of that request. The
method can be used access the Response object if required.HttpConnection.getCurrentConnection()
.getHttpChannel()
.getResponse()
- Throws:
java.io.IOException
- if unable to handle the request or response processingServletException
- if unable to handle the request or response due to underlying servlet issue
-
setExitJvm
public void setExitJvm(boolean exitJvm)
Deprecated.
-
isSendShutdownAtStart
public boolean isSendShutdownAtStart()
Deprecated.
-
setSendShutdownAtStart
public void setSendShutdownAtStart(boolean sendShutdownAtStart)
Deprecated.
-
getShutdownToken
public java.lang.String getShutdownToken()
Deprecated.
-
isExitJvm
public boolean isExitJvm()
Deprecated.
-
-