## org.apache.catalina.core
Class StandardHost

    java.lang.Object
      org.apache.catalina.core.ContainerBase
          org.apache.catalina.core.StandardHost

All Implemented Interfaces:
  Container, Deployer, Host, Lifecycle, Pipeline

Direct Known Subclasses:
  WarpHost

public class StandardHost
extends ContainerBase
implements Deployer, Host

Standard implementation of the Host interface. Each child container must be a Context implementation to process the requests directed to a particular web application.

Version:
  $Revision: 1.32 $ $Date: 2004/08/26 21:32:20 $
Author:
  Craig R. McClanahan, Remy Maucherat

Nested Class Summary

Nested classes inherited from class org.apache.catalina.core.ContainerBase
`ContainerBase.PrivilegedAddChild`

Field Summary

Fields inherited from class org.apache.catalina.core.ContainerBase
`children, cluster, debug, lifecycle, listeners, loader, logger, manager, mapper, mappers, name, parent, parentClassLoader, pipeline, realm, resources, sm, started, support`

Fields inherited from interface org.apache.catalina.Deployer
`INSTALL_EVENT, PRE_INSTALL_EVENT, REMOVE_EVENT`

Fields inherited from interface org.apache.catalina.Host
`ADD_ALIAS_EVENT, REMOVE_ALIAS_EVENT`

Fields inherited from interface org.apache.catalina.Container
`ADD_CHILD_EVENT, ADD_MAPPER_EVENT, ADD_VALVE_EVENT, REMOVE_CHILD_EVENT, REMOVE_MAPPER_EVENT, REMOVE_VALVE_EVENT`

Fields inherited from interface org.apache.catalina.Lifecycle
`AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, START_EVENT, STOP_EVENT`

Constructor Summary
`StandardHost()` Create a new StandardHost component with the default basic Valve.

Method Summary
`void` `addAlias(java.lang.String alias)` Add an alias name that should be mapped to this same Host.
`void` `addChild(Container child)` Add a child Container, only if the proposed child is an implementation of Context.
`void` `addDefaultContext(DefaultContext defaultContext)` Set the DefaultContext for new web applications.
`protected void` `addDefaultMapper(java.lang.String mapperClass)` Add a default Mapper implementation if none have been configured explicitly.
`java.lang.String[]` `findAliases()` Return the set of alias names for this Host.
`Context` `findDeployedApp(java.lang.String contextPath)` Return the Context for the deployed application that is associated with the specified context path (if any); otherwise return `null`.
`java.lang.String[]` `findDeployedApps()` Return the context paths of all deployed web applications in this Container.
`java.lang.String` `getAppBase()` Return the application root for this Host.
`boolean` `getAutoDeploy()` Return the value of the auto deploy flag.
`java.lang.String` `getConfigClass()` Return the Java class name of the context configuration class for new web applications.
`java.lang.String` `getContextClass()` Return the Java class name of the Context implementation class for new web applications.
`DefaultContext` `getDefaultContext()` Retrieve the DefaultContext for new web applications.
`java.lang.String` `getErrorReportValveClass()` Return the Java class name of the error report valve class for new web applications.
`java.lang.String` `getInfo()` Return descriptive information about this Container implementation and the corresponding version number, in the format `<description>/<version>`.
`boolean` `getLiveDeploy()` Return the value of the live deploy flag.
`java.lang.String` `getMapperClass()` Return the default Mapper class name.
`java.lang.String` `getName()` Return the canonical, fully qualified, name of the virtual host this Container represents.
`java.lang.String` `getWorkDir()` Host work directory base.
`void` `importDefaultContext(Context context)` Import the DefaultContext config into a web application context.
`void` `install(java.lang.String contextPath, java.net.URL war)` Install a new web application, whose web application archive is at the specified URL, into this container with the specified context path.
`void` `install(java.net.URL config, java.net.URL war)` Install a new web application, whose context configuration file (consisting of a `<Context>` element) and web application archive are at the specified URLs.
`void` `installDefaultContext(Context context)` Install the StandardContext portion of the DefaultContext configuration into current Context.
`boolean` `isDeployXML()` Deploy XML Context config files flag accessor.
`boolean` `isUnpackWARs()` Unpack WARs flag accessor.
`Context` `map(java.lang.String uri)` Return the Context that would be used to process the specified host-relative request URI, if any; otherwise return `null`.
`void` `remove(java.lang.String contextPath)` Remove an existing web application, attached to the specified context path.
`void` `remove(java.lang.String contextPath, boolean undeploy)` Remove an existing web application, attached to the specified context path.
`void` `removeAlias(java.lang.String alias)` Remove the specified alias name from the aliases for this Host.
`void` `setAppBase(java.lang.String appBase)` Set the application root for this Host.
`void` `setAutoDeploy(boolean autoDeploy)` Set the auto deploy flag value for this host.
`void` `setConfigClass(java.lang.String configClass)` Set the Java class name of the context configuration class for new web applications.
`void` `setContextClass(java.lang.String contextClass)` Set the Java class name of the Context implementation class for new web applications.
`void` `setDeployXML(boolean deployXML)` Deploy XML Context config files flag mutator.
`void` `setErrorReportValveClass(java.lang.String errorReportValveClass)` Set the Java class name of the error report valve class for new web applications.
`void` `setLiveDeploy(boolean liveDeploy)` Set the live deploy flag value for this host.
`void` `setMapperClass(java.lang.String mapperClass)` Set the default Mapper class name.
`void` `setName(java.lang.String name)` Set the canonical, fully qualified, name of the virtual host this Container represents.
`void` `setUnpackWARs(boolean unpackWARs)` Unpack WARs flag mutator.
`void` `setWorkDir(java.lang.String workDir)` Host work directory base.
`void` `start()` Start this host.
`void` `start(java.lang.String contextPath)` Start an existing web application, attached to the specified context path.
`void` `stop(java.lang.String contextPath)` Stop an existing web application, attached to the specified context path.
`java.lang.String` `toString()` Return a String representation of this component.

Methods inherited from class org.apache.catalina.core.ContainerBase

`addContainerListener, addLifecycleListener, addMapper, addPropertyChangeListener, addValve, findChild, findChildren, findContainerListeners, findLifecycleListeners, findMapper, findMappers, fireContainerEvent, getBasic, getCluster, getDebug, getLoader, getLogger, getManager, getParent, getParentClassLoader, getPipeline, getRealm, getResources, getValves, invoke, log, log, logName, map, removeChild, removeContainerListener, removeLifecycleListener, removeMapper, removePropertyChangeListener, removeValve, setBasic, setCluster, setDebug, setLoader, setLogger, setManager, setParent, setParentClassLoader, setRealm, setResources, 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, addMapper, addPropertyChangeListener, findChild, findChildren, findContainerListeners, findMapper, findMappers, getCluster, getLoader, getLogger, getManager, getParent, getParentClassLoader, getRealm, getResources, invoke, map, removeChild, removeContainerListener, removeMapper, removePropertyChangeListener, setCluster, setLoader, setLogger, setManager, setParent, setParentClassLoader, setRealm, setResources`

Constructor Detail

### StandardHost

    public StandardHost()

  Create a new StandardHost component with the default basic Valve.

Method Detail

### getAppBase

    public java.lang.String getAppBase()

  Return the application root for this Host. This can be an absolute pathname, a relative pathname, or a URL.

  Specified by:
    `getAppBase` in interface `Host`

### setAppBase

    public void setAppBase(java.lang.String appBase)

  Set the application root for this Host. This can be an absolute pathname, a relative pathname, or a URL.

  Specified by:
    `setAppBase` in interface `Host`
  Parameters:
    `appBase` - The new application root

### getAutoDeploy

    public boolean getAutoDeploy()

  Return the value of the auto deploy flag. If true, it indicates that this host's child webapps should be discovred and automatically deployed at startup time.

  Specified by:
    `getAutoDeploy` in interface `Host`

### setAutoDeploy

    public void setAutoDeploy(boolean autoDeploy)

  Set the auto deploy flag value for this host.

  Specified by:
    `setAutoDeploy` in interface `Host`
  Parameters:
    `autoDeploy` - The new auto deploy flag

### getConfigClass

    public java.lang.String getConfigClass()

  Return the Java class name of the context configuration class for new web applications.

### setConfigClass

    public void setConfigClass(java.lang.String configClass)

  Set the Java class name of the context configuration class for new web applications.

  Parameters:
    `configClass` - The new context configuration class

### addDefaultContext

    public void addDefaultContext(DefaultContext defaultContext)

  Set the DefaultContext for new web applications.

  Specified by:
    `addDefaultContext` in interface `Host`
  Parameters:
    `defaultContext` - The new DefaultContext

### getDefaultContext

    public DefaultContext getDefaultContext()

  Retrieve the DefaultContext for new web applications.

  Specified by:
    `getDefaultContext` in interface `Host`

### getContextClass

    public java.lang.String getContextClass()

  Return the Java class name of the Context implementation class for new web applications.

### setContextClass

    public void setContextClass(java.lang.String contextClass)

  Set the Java class name of the Context implementation class for new web applications.

  Parameters:
    `contextClass` - The new context implementation class

### isDeployXML

    public boolean isDeployXML()

  Deploy XML Context config files flag accessor.

### setDeployXML

    public void setDeployXML(boolean deployXML)

  Deploy XML Context config files flag mutator.

### getLiveDeploy

    public boolean getLiveDeploy()

  Return the value of the live deploy flag. If true, it indicates that a background thread should be started that looks for web application context files, WAR files, or unpacked directories being dropped in to the `appBase` directory, and deploys new ones as they are encountered.

### setLiveDeploy

    public void setLiveDeploy(boolean liveDeploy)

  Set the live deploy flag value for this host.

  Parameters:
    `liveDeploy` - The new live deploy flag

### getMapperClass

    public java.lang.String getMapperClass()

  Return the default Mapper class name.

### setMapperClass

    public void setMapperClass(java.lang.String mapperClass)

  Set the default Mapper class name.

  Parameters:
    `mapperClass` - The new default Mapper class name

### getErrorReportValveClass

    public java.lang.String getErrorReportValveClass()

  Return the Java class name of the error report valve class for new web applications.

### setErrorReportValveClass

    public void setErrorReportValveClass(java.lang.String errorReportValveClass)

  Set the Java class name of the error report valve class for new web applications.

  Parameters:
    `errorReportValveClass` - The new error report valve class

### getName

    public java.lang.String getName()

  Return the canonical, fully qualified, name of the virtual host this Container represents.

  Specified by:
    `getName` in interface `Deployer`
  Overrides:
    `getName` in class `ContainerBase`

### setName

    public void setName(java.lang.String name)

  Set the canonical, fully qualified, name of the virtual host this Container represents.

  Specified by:
    `setName` in interface `Host`
  Overrides:
    `setName` in class `ContainerBase`
  Parameters:
    `name` - Virtual host name
  Throws:
    `java.lang.IllegalArgumentException` - if name is null

### isUnpackWARs

    public boolean isUnpackWARs()

  Unpack WARs flag accessor.

### setUnpackWARs

    public void setUnpackWARs(boolean unpackWARs)

  Unpack WARs flag mutator.

### getWorkDir

    public java.lang.String getWorkDir()

  Host work directory base.

### setWorkDir

    public void setWorkDir(java.lang.String workDir)

  Host work directory base.

### installDefaultContext

    public void installDefaultContext(Context context)

  Install the StandardContext portion of the DefaultContext configuration into current Context.

  Parameters:
    `context` - current web application context

### importDefaultContext

    public void importDefaultContext(Context context)

  Import the DefaultContext config into a web application context.

  Specified by:
    `importDefaultContext` in interface `Host`
  Parameters:
    `context` - web application context to import default context

### addAlias

    public void addAlias(java.lang.String alias)

  Add an alias name that should be mapped to this same Host.

  Specified by:
    `addAlias` in interface `Host`
  Parameters:
    `alias` - The alias to be added

### addChild

    public void addChild(Container child)

  Add a child Container, only if the proposed child is an implementation of Context.

  Specified by:
    `addChild` in interface `Container`
  Overrides:
    `addChild` in class `ContainerBase`
  Parameters:
    `child` - Child container to be added

### findAliases

    public java.lang.String[] findAliases()

  Return the set of alias names for this Host. If none are defined, a zero length array is returned.

  Specified by:
    `findAliases` in interface `Host`

### getInfo

    public java.lang.String getInfo()

  Return descriptive information about this Container implementation and the corresponding version number, in the format `<description>/<version>`.

  Specified by:
    `getInfo` in interface `Container`
  Specified by:
    `getInfo` in class `ContainerBase`

### map

    public Context map(java.lang.String uri)

  Return the Context that would be used to process the specified host-relative request URI, if any; otherwise return `null`.

  Specified by:
    `map` in interface `Host`
  Parameters:
    `uri` - Request URI to be mapped

### removeAlias

    public void removeAlias(java.lang.String alias)

  Remove the specified alias name from the aliases for this Host.

  Specified by:
    `removeAlias` in interface `Host`
  Parameters:
    `alias` - Alias name to be removed

### toString

    public java.lang.String toString()

  Return a String representation of this component.

### start

    public void start()
               throws LifecycleException

  Start this host.

  Specified by:
    `start` in interface `Lifecycle`
  Overrides:
    `start` in class `ContainerBase`
  Throws:
    `LifecycleException` - if this component detects a fatal error that prevents it from being started

### install

    public void install(java.lang.String contextPath,
                        java.net.URL war)
                 throws java.io.IOException

  Install a new web application, whose web application archive is at the specified URL, into this container with the specified context path. A context path of "" (the empty string) should be used for the root application for this container. Otherwise, the context path must start with a slash.

  If this application is successfully installed, a ContainerEvent of type `INSTALL_EVENT` will be sent to all registered listeners, with the newly created `Context` as an argument.

  Specified by:
    `install` in interface `Deployer`
  Parameters:
    `contextPath` - The context path to which this application should be installed (must be unique)
    `war` - A URL of type "jar:" that points to a WAR file, or type "file:" that points to an unpacked directory structure containing the web application to be installed
  Throws:
    `java.lang.IllegalArgumentException` - if the specified context path is malformed (it must be "" or start with a slash)
    `java.lang.IllegalStateException` - if the specified context path is already attached to an existing web application
    `java.io.IOException` - if an input/output error was encountered during install

### install

    public void install(java.net.URL config,
                        java.net.URL war)
                 throws java.io.IOException

  Install a new web application, whose context configuration file (consisting of a `<Context>` element) and web application archive are at the specified URLs.

  If this application is successfully installed, a ContainerEvent of type `INSTALL_EVENT` will be sent to all registered listeners, with the newly created `Context` as an argument.

  Specified by:
    `install` in interface `Deployer`
  Parameters:
    `config` - A URL that points to the context configuration file to be used for configuring the new Context
    `war` - A URL of type "jar:" that points to a WAR file, or type "file:" that points to an unpacked directory structure containing the web application to be installed
  Throws:
    `java.lang.IllegalArgumentException` - if one of the specified URLs is null
    `java.lang.IllegalStateException` - if the context path specified in the context configuration file is already attached to an existing web application
    `java.io.IOException` - if an input/output error was encountered during installation

### findDeployedApp

    public Context findDeployedApp(java.lang.String contextPath)

  Return the Context for the deployed application that is associated with the specified context path (if any); otherwise return `null`.

  Specified by:
    `findDeployedApp` in interface `Deployer`
  Parameters:
    `contextPath` - The context path of the requested web application

### findDeployedApps

    public java.lang.String[] findDeployedApps()

  Return the context paths of all deployed web applications in this Container. If there are no deployed applications, a zero-length array is returned.

  Specified by:
    `findDeployedApps` in interface `Deployer`

### remove

    public void remove(java.lang.String contextPath)
                throws java.io.IOException

  Remove an existing web application, attached to the specified context path. If this application is successfully removed, a ContainerEvent of type `REMOVE_EVENT` will be sent to all registered listeners, with the removed `Context` as an argument.

  Specified by:
    `remove` in interface `Deployer`
  Parameters:
    `contextPath` - The context path of the application to be removed
  Throws:
    `java.lang.IllegalArgumentException` - if the specified context path is malformed (it must be "" or start with a slash)
    `java.lang.IllegalArgumentException` - if the specified context path does not identify a currently installed web application
    `java.io.IOException` - if an input/output error occurs during removal

### remove

    public void remove(java.lang.String contextPath,
                       boolean undeploy)
                throws java.io.IOException

  Remove an existing web application, attached to the specified context path. If this application is successfully removed, a ContainerEvent of type `REMOVE_EVENT` will be sent to all registered listeners, with the removed `Context` as an argument. Deletes the web application war file and/or directory if they exist in the Host's appBase.

  Specified by:
    `remove` in interface `Deployer`
  Parameters:
    `contextPath` - The context path of the application to be removed
    `undeploy` - boolean flag to remove web application from server
  Throws:
    `java.lang.IllegalArgumentException` - if the specified context path is malformed (it must be "" or start with a slash)
    `java.lang.IllegalArgumentException` - if the specified context path does not identify a currently installed web application
    `java.io.IOException` - if an input/output error occurs during removal

### start

    public void start(java.lang.String contextPath)
               throws java.io.IOException

  Start an existing web application, attached to the specified context path. Only starts a web application if it is not running.

  Specified by:
    `start` in interface `Deployer`
  Parameters:
    `contextPath` - The context path of the application to be started
  Throws:
    `java.lang.IllegalArgumentException` - if the specified context path is malformed (it must be "" or start with a slash)
    `java.lang.IllegalArgumentException` - if the specified context path does not identify a currently installed web application
    `java.io.IOException` - if an input/output error occurs during startup

### stop

    public void stop(java.lang.String contextPath)
              throws java.io.IOException

  Stop an existing web application, attached to the specified context path. Only stops a web application if it is running.

  Specified by:
    `stop` in interface `Deployer`
  Parameters:
    `contextPath` - The context path of the application to be stopped
  Throws:
    `java.lang.IllegalArgumentException` - if the specified context path is malformed (it must be "" or start with a slash)
    `java.lang.IllegalArgumentException` - if the specified context path does not identify a currently installed web application
    `java.io.IOException` - if an input/output error occurs while stopping the web application

### addDefaultMapper

    protected void addDefaultMapper(java.lang.String mapperClass)

  Add a default Mapper implementation if none have been configured explicitly.

  Overrides:
    `addDefaultMapper` in class `ContainerBase`
  Parameters:
    `mapperClass` - Java class name of the default Mapper

Copyright ? 2000-2002 Apache Software Foundation. All Rights Reserved.