Package org.apache.catalina.core
Class StandardHost
java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.LifecycleMBeanBase
org.apache.catalina.core.ContainerBase
org.apache.catalina.core.StandardHost
- All Implemented Interfaces:
MBeanRegistration
,Container
,Host
,JmxEnabled
,Lifecycle
Standard implementation of the Host interface. Each child container must be a Context implementation to
process the requests directed to a particular web application.
- Author:
- Craig R. McClanahan, Remy Maucherat
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.catalina.core.ContainerBase
ContainerBase.ContainerBackgroundProcessor, ContainerBase.ContainerBackgroundProcessorMonitor, ContainerBase.PrivilegedAddChild
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
Field Summary
Fields inherited from class org.apache.catalina.core.ContainerBase
accessLog, backgroundProcessorDelay, backgroundProcessorFuture, children, cluster, listeners, logger, logName, monitorFuture, name, parent, parentClassLoader, pipeline, sm, startChildren, startStopExecutor, support
Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase
mserver
Fields inherited from interface org.apache.catalina.Container
ADD_CHILD_EVENT, ADD_VALVE_EVENT, REMOVE_CHILD_EVENT, REMOVE_VALVE_EVENT
Fields inherited from interface org.apache.catalina.Host
ADD_ALIAS_EVENT, REMOVE_ALIAS_EVENT
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
-
Constructor Summary
ConstructorDescriptionCreate a new StandardHost component with the default basic Valve. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add an alias name that should be mapped to this same Host.void
Add a new child Container to those associated with this Container, if supported.String[]
String[]
Attempt to identify the contexts that have a class loader memory leak.String[]
boolean
boolean
Returnstrue
if the Host will attempt to create directories for appBase and xmlBase unless they already exist.boolean
getName()
Return a name string (suitable for use by humans) that describes this Container.protected String
Allow sub-classes to specify the key properties component of theObjectName
that will be used to register this component.boolean
String[]
boolean
boolean
boolean
boolean
void
removeAlias
(String alias) Remove the specified alias name from the aliases for this Host.void
setAppBase
(String appBase) Set the application root for this Host.void
setAutoDeploy
(boolean autoDeploy) Set the auto deploy flag value for this host.void
setConfigClass
(String configClass) Set the Java class name of the context configuration class for new web applications.void
setContextClass
(String contextClass) Set the Java class name of the Context implementation class for new web applications.void
setCopyXML
(boolean copyXML) Set the copy XML config file flag for this component.void
setCreateDirs
(boolean createDirs) Should the Host attempt to create directories for xmlBase and appBase upon startup.void
setDeployIgnore
(String deployIgnore) Set the regular expression that defines the files and directories in the host's appBase that will be ignored by the automatic deployment process.void
setDeployOnStartup
(boolean deployOnStartup) Set the deploy on startup flag value for this host.void
setDeployXML
(boolean deployXML) Deploy XML Context config files flag mutator.void
setErrorReportValveClass
(String errorReportValveClass) Set the Java class name of the error report valve class for new web applications.void
setFailCtxIfServletStartFails
(boolean failCtxIfServletStartFails) Change the behavior of Servlet startup errors on web application starts.void
Set a name string (suitable for use by humans) that describes this Container.void
setUndeployOldVersions
(boolean undeployOldVersions) Set totrue
if the Host should automatically undeploy old versions of applications deployed using parallel deployment.void
setUnpackWARs
(boolean unpackWARs) Unpack WARs flag mutator.void
setWorkDir
(String workDir) Set host work directory base.void
setXmlBase
(String xmlBase) Set the Xml root for this Host.protected void
Start this component and implement the requirements ofLifecycleBase.startInternal()
.Methods inherited from class org.apache.catalina.core.ContainerBase
addContainerListener, addPropertyChangeListener, addValve, backgroundProcess, destroyInternal, findChild, findChildren, findContainerListeners, fireContainerEvent, getAccessLog, getBackgroundProcessorDelay, getCatalinaBase, getCatalinaHome, getChildren, getCluster, getClusterInternal, getDomainInternal, getLogger, getLogName, getMBeanKeyProperties, getParent, getParentClassLoader, getPipeline, getRealm, getRealmInternal, getStartChildren, getStartStopThreads, logAccess, removeChild, removeContainerListener, removePropertyChangeListener, setBackgroundProcessorDelay, setCluster, setParent, setParentClassLoader, setRealm, setStartChildren, setStartStopThreads, stopInternal, threadStart, threadStop, toString
Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase
getDomain, getObjectName, initInternal, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister
Methods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.catalina.Container
addContainerListener, addPropertyChangeListener, backgroundProcess, findChild, findChildren, findContainerListeners, fireContainerEvent, getAccessLog, getBackgroundProcessorDelay, getCatalinaBase, getCatalinaHome, getCluster, getDomain, getLogger, getLogName, getMBeanKeyProperties, getObjectName, getParent, getParentClassLoader, getPipeline, getRealm, getStartStopThreads, logAccess, removeChild, removeContainerListener, removePropertyChangeListener, setBackgroundProcessorDelay, setCluster, setParent, setParentClassLoader, setRealm, setStartStopThreads
Methods inherited from interface org.apache.catalina.Lifecycle
addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop
-
Constructor Details
-
StandardHost
public StandardHost()Create a new StandardHost component with the default basic Valve.
-
-
Method Details
-
getUndeployOldVersions
public boolean getUndeployOldVersions()- Specified by:
getUndeployOldVersions
in interfaceHost
- Returns:
true
of the Host is configured to automatically undeploy old versions of applications deployed using parallel deployment. This only takes effect isHost.getAutoDeploy()
also returnstrue
.
-
setUndeployOldVersions
public void setUndeployOldVersions(boolean undeployOldVersions) Description copied from interface:Host
Set totrue
if the Host should automatically undeploy old versions of applications deployed using parallel deployment. This only takes effect ifHost.getAutoDeploy()
returnstrue
.- Specified by:
setUndeployOldVersions
in interfaceHost
- Parameters:
undeployOldVersions
- The new value for this flag
-
getStartStopExecutor
- Specified by:
getStartStopExecutor
in interfaceHost
- Returns:
- the executor that is used for starting and stopping contexts. This is primarily for use by components deploying contexts that want to do this in a multi-threaded manner.
-
getAppBase
- Specified by:
getAppBase
in interfaceHost
- Returns:
- the application root for this Host. This can be an absolute pathname, a relative pathname, or a URL.
-
getAppBaseFile
- Specified by:
getAppBaseFile
in interfaceHost
- Returns:
- an absolute
File
for the appBase of this Host. The file will be canonical if possible. There is no guarantee that that the appBase exists.
-
setAppBase
Description copied from interface:Host
Set the application root for this Host. This can be an absolute pathname, a relative pathname, or a URL.- Specified by:
setAppBase
in interfaceHost
- Parameters:
appBase
- The new application root
-
getXmlBase
- Specified by:
getXmlBase
in interfaceHost
- Returns:
- the XML root for this Host. This can be an absolute pathname or a relative pathname. If null, the base path defaults to ${catalina.base}/conf/<engine name>/<host name> directory
-
setXmlBase
Description copied from interface:Host
Set the Xml root for this Host. This can be an absolute pathname or a relative pathname. If null, the base path defaults to ${catalina.base}/conf/<engine name>/<host name> directory- Specified by:
setXmlBase
in interfaceHost
- Parameters:
xmlBase
- The new XML root
-
getConfigBaseFile
- Specified by:
getConfigBaseFile
in interfaceHost
- Returns:
- a default configuration path of this Host. The file will be canonical if possible.
-
getCreateDirs
public boolean getCreateDirs()Returnstrue
if the Host will attempt to create directories for appBase and xmlBase unless they already exist.The default value for this implementation is
true
.- Specified by:
getCreateDirs
in interfaceHost
- Returns:
- true if the Host will attempt to create directories
-
setCreateDirs
public void setCreateDirs(boolean createDirs) Description copied from interface:Host
Should the Host attempt to create directories for xmlBase and appBase upon startup.- Specified by:
setCreateDirs
in interfaceHost
- Parameters:
createDirs
- The new value for this flag
-
getAutoDeploy
public boolean getAutoDeploy()The default value for this implementation is
true
.- Specified by:
getAutoDeploy
in interfaceHost
- Returns:
- the value of the auto deploy flag. If true, it indicates that this host's child webapps should be discovered and automatically deployed dynamically.
-
setAutoDeploy
public void setAutoDeploy(boolean autoDeploy) Description copied from interface:Host
Set the auto deploy flag value for this host.- Specified by:
setAutoDeploy
in interfaceHost
- Parameters:
autoDeploy
- The new auto deploy flag
-
getConfigClass
- Specified by:
getConfigClass
in interfaceHost
- Returns:
- the Java class name of the context configuration class for new web applications.
-
setConfigClass
Description copied from interface:Host
Set the Java class name of the context configuration class for new web applications.- Specified by:
setConfigClass
in interfaceHost
- Parameters:
configClass
- The new context configuration class
-
getContextClass
- Returns:
- the Java class name of the Context implementation class for new web applications.
-
setContextClass
Set the Java class name of the Context implementation class for new web applications.- Parameters:
contextClass
- The new context implementation class
-
getDeployOnStartup
public boolean getDeployOnStartup()The default value for this implementation is
true
.- Specified by:
getDeployOnStartup
in interfaceHost
- Returns:
- the value of the deploy on startup flag. If true, it indicates that this host's child webapps should be discovered and automatically deployed.
-
setDeployOnStartup
public void setDeployOnStartup(boolean deployOnStartup) Description copied from interface:Host
Set the deploy on startup flag value for this host.- Specified by:
setDeployOnStartup
in interfaceHost
- Parameters:
deployOnStartup
- The new deploy on startup flag
-
isDeployXML
public boolean isDeployXML()- Returns:
true
if XML context descriptors should be deployed.
-
setDeployXML
public void setDeployXML(boolean deployXML) Deploy XML Context config files flag mutator.- Parameters:
deployXML
-true
if context descriptors should be deployed
-
isCopyXML
public boolean isCopyXML()- Returns:
- the copy XML config file flag for this component.
-
setCopyXML
public void setCopyXML(boolean copyXML) Set the copy XML config file flag for this component.- Parameters:
copyXML
- The new copy XML flag
-
getErrorReportValveClass
- Returns:
- the Java class name of the error report valve class for new web applications.
-
setErrorReportValveClass
Set the Java class name of the error report valve class for new web applications.- Parameters:
errorReportValveClass
- The new error report valve class
-
getName
Description copied from interface:Container
Return a name string (suitable for use by humans) that describes this Container. Within the set of child containers belonging to a particular parent, Container names must be unique.- Specified by:
getName
in interfaceContainer
- Overrides:
getName
in classContainerBase
- Returns:
- The human readable name of this container.
-
setName
Description copied from interface:Container
Set a name string (suitable for use by humans) that describes this Container. Within the set of child containers belonging to a particular parent, Container names must be unique.- Specified by:
setName
in interfaceContainer
- Overrides:
setName
in classContainerBase
- Parameters:
name
- New name of this container
-
isUnpackWARs
public boolean isUnpackWARs()- Returns:
true
if WARs should be unpacked on deployment.
-
setUnpackWARs
public void setUnpackWARs(boolean unpackWARs) Unpack WARs flag mutator.- Parameters:
unpackWARs
-true
to unpack WARs on deployment
-
getWorkDir
- Returns:
- host work directory base.
-
setWorkDir
Set host work directory base.- Parameters:
workDir
- the new base work folder for this host
-
getDeployIgnore
- Specified by:
getDeployIgnore
in interfaceHost
- Returns:
- the regular expression that defines the files and directories in the host's appBase that will be ignored by the automatic deployment process.
-
getDeployIgnorePattern
- Specified by:
getDeployIgnorePattern
in interfaceHost
- Returns:
- the compiled regular expression that defines the files and directories in the host's appBase that will be ignored by the automatic deployment process.
-
setDeployIgnore
Description copied from interface:Host
Set the regular expression that defines the files and directories in the host's appBase that will be ignored by the automatic deployment process.- Specified by:
setDeployIgnore
in interfaceHost
- Parameters:
deployIgnore
- A regular expression matching file names
-
isFailCtxIfServletStartFails
public boolean isFailCtxIfServletStartFails()- Returns:
true
if a webapp start should fail if a Servlet startup fails
-
setFailCtxIfServletStartFails
public void setFailCtxIfServletStartFails(boolean failCtxIfServletStartFails) Change the behavior of Servlet startup errors on web application starts.- Parameters:
failCtxIfServletStartFails
-false
to ignore errors on Servlets which are stated when the web application starts
-
addAlias
Description copied from interface:Host
Add an alias name that should be mapped to this same Host. -
addChild
Add a new child Container to those associated with this Container, if supported. Prior to adding this Container to the set of children, the child'ssetParent()
method must be called, with this Container as an argument. This method may thrown anIllegalArgumentException
if this Container chooses not to be attached to the specified Container, in which case it is not addedThe child must be an implementation of
Context
.- Specified by:
addChild
in interfaceContainer
- Overrides:
addChild
in classContainerBase
- Parameters:
child
- New child Container to be added
-
findReloadedContextMemoryLeaks
Attempt to identify the contexts that have a class loader memory leak. This is usually triggered on context reload. Note: This method attempts to force a full garbage collection. This should be used with extreme caution on a production system.- Returns:
- a list of possibly leaking contexts
-
findAliases
- Specified by:
findAliases
in interfaceHost
- Returns:
- the set of alias names for this Host. If none are defined, a zero length array is returned.
-
removeAlias
Description copied from interface:Host
Remove the specified alias name from the aliases for this Host.- Specified by:
removeAlias
in interfaceHost
- Parameters:
alias
- Alias name to be removed
-
startInternal
Description copied from class:ContainerBase
Start this component and implement the requirements ofLifecycleBase.startInternal()
.- Overrides:
startInternal
in classContainerBase
- Throws:
LifecycleException
- if this component detects a fatal error that prevents this component from being used
-
getValveNames
- Returns:
- the MBean Names of the Valves associated with this Host
- Throws:
Exception
- if an MBean cannot be created or registered
-
getAliases
-
getObjectNameKeyProperties
Description copied from class:LifecycleMBeanBase
Allow sub-classes to specify the key properties component of theObjectName
that will be used to register this component.- Specified by:
getObjectNameKeyProperties
in classLifecycleMBeanBase
- Returns:
- The string representation of the key properties component of the desired
ObjectName
-