Package org.apache.catalina.manager.host
Class HostManagerServlet
- java.lang.Object
-
- javax.servlet.GenericServlet
-
- javax.servlet.http.HttpServlet
-
- org.apache.catalina.manager.host.HostManagerServlet
-
- All Implemented Interfaces:
Serializable,Servlet,ServletConfig,ContainerServlet
- Direct Known Subclasses:
HTMLHostManagerServlet
public class HostManagerServlet extends HttpServlet implements ContainerServlet
Servlet that enables remote management of the virtual hosts installed on the server. Normally, this functionality will be protected by a security constraint in the web application deployment descriptor. However, this requirement can be relaxed during testing.This servlet examines the value returned by
getPathInfo()and related query parameters to determine what action is being requested. The following actions and parameters (starting after the servlet path) are supported:- /add?name={host-name}&aliases={host-aliases}&manager={manager} -
Create and add a new virtual host. The
host-nameattribute indicates the name of the new host. Thehost-aliasesattribute is a comma separated list of the host alias names. Themanagerattribute is a boolean value indicating if the webapp manager will be installed in the newly created host (optional, false by default). - /remove?name={host-name} - Remove a virtual host.
The
host-nameattribute indicates the name of the host. - /list - List the virtual hosts installed on the server.
Each host will be listed with the following format
host-name#host-aliases. - /start?name={host-name} - Start the virtual host.
- /stop?name={host-name} - Stop the virtual host.
NOTE - Attempting to stop or remove the host containing this servlet itself will not succeed. Therefore, this servlet should generally be deployed in a separate virtual host.
The following servlet initialization parameters are recognized:
- debug - The debugging detail level that controls the amount of information that is logged by this servlet. Default is zero.
- Author:
- Craig R. McClanahan, Remy Maucherat
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected ContextcontextThe Context container associated with our web application.protected intdebugThe debugging detail level for this servlet.protected EngineengineThe associated engine.protected HostinstalledHostThe associated host.protected static StringManagersmThe string manager for this package.protected WrapperwrapperThe Wrapper container associated with this servlet.
-
Constructor Summary
Constructors Constructor Description HostManagerServlet()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidadd(PrintWriter writer, String name, String aliases, String appBase, boolean manager, boolean autoDeploy, boolean deployOnStartup, boolean deployXML, boolean unpackWARs, boolean copyXML, StringManager smClient)Add a host using the specified parameters.protected voidadd(HttpServletRequest request, PrintWriter writer, String name, boolean htmlMode, StringManager smClient)Add host with the given parameters.protected booleanbooleanParameter(HttpServletRequest request, String parameter, boolean theDefault, boolean htmlMode)Extract boolean value from checkbox with default.voiddestroy()Finalize this servlet.voiddoGet(HttpServletRequest request, HttpServletResponse response)Process a GET request for the specified resource.protected FilegetConfigBase(String hostName)Get config base.WrappergetWrapper()Return the Wrapper with which we are associated.voidinit()A convenience method which can be overridden so that there's no need to callsuper.init(config).protected voidlist(PrintWriter writer, StringManager smClient)Render a list of the currently active Contexts in our virtual host.protected voidpersist(PrintWriter writer, StringManager smClient)Persist the current configuration to server.xml.protected voidremove(PrintWriter writer, String name, StringManager smClient)Remove the specified host.voidsetWrapper(Wrapper wrapper)Set the Wrapper with which we are associated.protected voidstart(PrintWriter writer, String name, StringManager smClient)Start the host with the specified name.protected voidstop(PrintWriter writer, String name, StringManager smClient)Stop the host with the specified name.-
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service, service
-
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
-
-
-
-
Field Detail
-
context
protected transient Context context
The Context container associated with our web application.
-
debug
protected int debug
The debugging detail level for this servlet.
-
installedHost
protected transient Host installedHost
The associated host.
-
engine
protected transient Engine engine
The associated engine.
-
sm
protected static final StringManager sm
The string manager for this package.
-
wrapper
protected transient Wrapper wrapper
The Wrapper container associated with this servlet.
-
-
Method Detail
-
getWrapper
public Wrapper getWrapper()
Return the Wrapper with which we are associated.- Specified by:
getWrapperin interfaceContainerServlet- Returns:
- The Wrapper with which this Servlet is associated.
-
setWrapper
public void setWrapper(Wrapper wrapper)
Set the Wrapper with which we are associated.- Specified by:
setWrapperin interfaceContainerServlet- Parameters:
wrapper- The new wrapper
-
destroy
public void destroy()
Finalize this servlet.- Specified by:
destroyin interfaceServlet- Overrides:
destroyin classGenericServlet
-
doGet
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
Process a GET request for the specified resource.- Overrides:
doGetin classHttpServlet- Parameters:
request- The servlet request we are processingresponse- The servlet response we are creating- Throws:
IOException- if an input/output error occursServletException- if a servlet-specified error occurs- See Also:
ServletResponse.setContentType(java.lang.String)
-
add
protected void add(HttpServletRequest request, PrintWriter writer, String name, boolean htmlMode, StringManager smClient)
Add host with the given parameters.- Parameters:
request- The requestwriter- The output writername- The host namehtmlMode- Flag valuesmClient- StringManager for the client's locale
-
booleanParameter
protected boolean booleanParameter(HttpServletRequest request, String parameter, boolean theDefault, boolean htmlMode)
Extract boolean value from checkbox with default.- Parameters:
request- The Servlet requestparameter- The parameter nametheDefault- Default valuehtmlMode- Flag value- Returns:
- the boolean value for the parameter
-
init
public void init() throws ServletExceptionDescription copied from class:javax.servlet.GenericServletA convenience method which can be overridden so that there's no need to callsuper.init(config).Instead of overriding
GenericServlet.init(ServletConfig), simply override this method and it will be called byGenericServlet.init(ServletConfig config). TheServletConfigobject can still be retrieved viaGenericServlet.getServletConfig().- Overrides:
initin classGenericServlet- Throws:
ServletException- if an exception occurs that interrupts the servlet's normal operation
-
add
protected void add(PrintWriter writer, String name, String aliases, String appBase, boolean manager, boolean autoDeploy, boolean deployOnStartup, boolean deployXML, boolean unpackWARs, boolean copyXML, StringManager smClient)
Add a host using the specified parameters.- Parameters:
writer- Writer to render results toname- host namealiases- comma separated alias listappBase- application base for the hostmanager- should the manager webapp be deployed to the new host ?autoDeploy- Flag valuedeployOnStartup- Flag valuedeployXML- Flag valueunpackWARs- Flag valuecopyXML- Flag valuesmClient- StringManager for the client's locale
-
remove
protected void remove(PrintWriter writer, String name, StringManager smClient)
Remove the specified host.- Parameters:
writer- Writer to render results toname- host namesmClient- StringManager for the client's locale
-
list
protected void list(PrintWriter writer, StringManager smClient)
Render a list of the currently active Contexts in our virtual host.- Parameters:
writer- Writer to render tosmClient- StringManager for the client's locale
-
start
protected void start(PrintWriter writer, String name, StringManager smClient)
Start the host with the specified name.- Parameters:
writer- Writer to render toname- Host namesmClient- StringManager for the client's locale
-
stop
protected void stop(PrintWriter writer, String name, StringManager smClient)
Stop the host with the specified name.- Parameters:
writer- Writer to render toname- Host namesmClient- StringManager for the client's locale
-
persist
protected void persist(PrintWriter writer, StringManager smClient)
Persist the current configuration to server.xml.- Parameters:
writer- Writer to render tosmClient- i18n resources localized for the client
-
-