StandardServer (Apache Tomcat 9.0.37 API Documentation)

org.apache.catalina.core

## Class StandardServer

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.core.StandardServer

- All Implemented Interfaces:
    MBeanRegistration, JmxEnabled, Lifecycle, Server

      public final class StandardServer
      extends LifecycleMBeanBase
      implements Server

  Standard implementation of the Server interface, available for use (but not required) when deploying and starting Catalina.
  Author:
    Craig R. McClanahan

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `periodicEventDelay` The lifecycle event period in seconds.
    `protected int` | `utilityThreads` The number of threads available to process utility tasks in this service.
    `protected boolean` | `utilityThreadsAsDaemon` The utility threads daemon flag.

    - ### Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `mserver`

    - ### 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

    Constructors
    Constructor and Description
    `StandardServer()` Construct a default instance of this class.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addPropertyChangeListener(PropertyChangeListener listener)` Add a property change listener to this component.
    `void` | `addService(Service service)` Add a new Service to the set of defined Services.
    `void` | `await()` Wait until a proper shutdown command is received, then return.
    `protected void` | `destroyInternal()` Sub-classes wishing to perform additional clean-up should override this method, ensuring that super.destroyInternal() is the last call in the overriding method.
    `Service` | `findService(String name)` Find the specified Service
    `Service[]` | `findServices()`
    `String` | `getAddress()` Return the address on which we listen to for shutdown commands.
    `Catalina` | `getCatalina()` Return the outer Catalina startup/shutdown component if present.
    `File` | `getCatalinaBase()`
    `File` | `getCatalinaHome()`
    `protected String` | `getDomainInternal()` Obtain the MBean domain for this server.
    `Context` | `getGlobalNamingContext()` Return the global naming resources context.
    `NamingResourcesImpl` | `getGlobalNamingResources()` Return the global naming resources.
    `Object` | `getNamingToken()`
    `protected String` | `getObjectNameKeyProperties()` Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
    `ClassLoader` | `getParentClassLoader()` Return the parent class loader for this component.
    `int` | `getPeriodicEventDelay()`
    `int` | `getPort()` Return the port number we listen to for shutdown commands.
    `int` | `getPortOffset()` Get the number that offsets the port used for shutdown commands.
    `int` | `getPortWithOffset()` Get the actual port on which server is listening for the shutdown commands.
    `String` | `getServerBuilt()` Return the current server built timestamp
    `String` | `getServerInfo()` Report the current Tomcat Server Release number
    `String` | `getServerNumber()` Return the current server's version number.
    `ObjectName[]` | `getServiceNames()`
    `String` | `getShutdown()` Return the shutdown command string we are waiting for.
    `ScheduledExecutorService` | `getUtilityExecutor()`
    `int` | `getUtilityThreads()` Get the utility thread count.
    `boolean` | `getUtilityThreadsAsDaemon()` Get if the utility threads are daemon threads.
    `protected void` | `initInternal()` Invoke a pre-startup initialization.
    `void` | `removePropertyChangeListener(PropertyChangeListener listener)` Remove a property change listener from this component.
    `void` | `removeService(Service service)` Remove the specified Service from the set associated from this Server.
    `void` | `setAddress(String address)` Set the address on which we listen to for shutdown commands.
    `void` | `setCatalina(Catalina catalina)` Set the outer Catalina startup/shutdown component if present.
    `void` | `setCatalinaBase(File catalinaBase)` Set the configured base (instance) directory.
    `void` | `setCatalinaHome(File catalinaHome)` Set the configured home (binary) directory.
    `void` | `setGlobalNamingContext(Context globalNamingContext)` Set the global naming resources context.
    `void` | `setGlobalNamingResources(NamingResourcesImpl globalNamingResources)` Set the global naming resources.
    `void` | `setParentClassLoader(ClassLoader parent)` Set the parent class loader for this server.
    `void` | `setPeriodicEventDelay(int periodicEventDelay)` Set the new period between two lifecycle events in seconds.
    `void` | `setPort(int port)` Set the port number we listen to for shutdown commands.
    `void` | `setPortOffset(int portOffset)` Set the number that offsets the server port used for shutdown commands.
    `void` | `setShutdown(String shutdown)` Set the shutdown command we are waiting for.
    `void` | `setUtilityThreads(int utilityThreads)` Set the utility thread count.
    `void` | `setUtilityThreadsAsDaemon(boolean utilityThreadsAsDaemon)` Set the utility threads daemon flag.
    `protected void` | `startInternal()` Start nested components (`Service`s) and implement the requirements of `LifecycleBase.startInternal()`.
    `protected void` | `startPeriodicLifecycleEvent()`
    `void` | `stopAwait()`
    `protected void` | `stopInternal()` Stop nested components (`Service`s) and implement the requirements of `LifecycleBase.stopInternal()`.
    `void` | `storeConfig()` Write the configuration information for this entire `Server` out to the server.xml configuration file.
    `void` | `storeContext(Context context)` Write the configuration information for `Context` out to the specified configuration file.
    `String` | `toString()` Return a String representation of this component.

    - ### Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `getDomain, getObjectName, 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.Lifecycle

      `addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop`

- - ### Field Detail

    - #### utilityThreads

          protected int utilityThreads

      The number of threads available to process utility tasks in this service.

    - #### utilityThreadsAsDaemon

          protected boolean utilityThreadsAsDaemon

      The utility threads daemon flag.

    - #### periodicEventDelay

          protected int periodicEventDelay

      The lifecycle event period in seconds.

  - ### Constructor Detail

    - #### StandardServer

          public StandardServer()

      Construct a default instance of this class.

  - ### Method Detail

    - #### getNamingToken

          public Object getNamingToken()

      Specified by:
        `getNamingToken` in interface `Server`
      Returns:
        the token necessary for operations on the associated JNDI naming context.

    - #### getGlobalNamingContext

          public Context getGlobalNamingContext()

      Return the global naming resources context.
      Specified by:
        `getGlobalNamingContext` in interface `Server`
      Returns:
        the global naming resources context.

    - #### setGlobalNamingContext

          public void setGlobalNamingContext(Context globalNamingContext)

      Set the global naming resources context.
      Parameters:
        `globalNamingContext` - The new global naming resource context

    - #### getGlobalNamingResources

          public NamingResourcesImpl getGlobalNamingResources()

      Return the global naming resources.
      Specified by:
        `getGlobalNamingResources` in interface `Server`
      Returns:
        the global naming resources.

    - #### setGlobalNamingResources

          public void setGlobalNamingResources(NamingResourcesImpl globalNamingResources)

      Set the global naming resources.
      Specified by:
        `setGlobalNamingResources` in interface `Server`
      Parameters:
        `globalNamingResources` - The new global naming resources

    - #### getServerInfo

          public String getServerInfo()

      Report the current Tomcat Server Release number
      Returns:
        Tomcat release identifier

    - #### getServerBuilt

          public String getServerBuilt()

      Return the current server built timestamp
      Returns:
        server built timestamp.

    - #### getServerNumber

          public String getServerNumber()

      Return the current server's version number.
      Returns:
        server's version number.

    - #### getPort

          public int getPort()

      Return the port number we listen to for shutdown commands.
      Specified by:
        `getPort` in interface `Server`
      Returns:
        the port number we listen to for shutdown commands.
      See Also:
        `Server.getPortOffset()`, `Server.getPortWithOffset()`

    - #### setPort

          public void setPort(int port)

      Set the port number we listen to for shutdown commands.
      Specified by:
        `setPort` in interface `Server`
      Parameters:
        `port` - The new port number
      See Also:
        `Server.setPortOffset(int)`

    - #### getPortOffset

          public int getPortOffset()

      Description copied from interface: `Server`
      Get the number that offsets the port used for shutdown commands. For example, if port is 8005, and portOffset is 1000, the server listens at 9005.
      Specified by:
        `getPortOffset` in interface `Server`
      Returns:
        the port offset

    - #### setPortOffset

          public void setPortOffset(int portOffset)

      Description copied from interface: `Server`
      Set the number that offsets the server port used for shutdown commands. For example, if port is 8005, and you set portOffset to 1000, connector listens at 9005.
      Specified by:
        `setPortOffset` in interface `Server`
      Parameters:
        `portOffset` - sets the port offset

    - #### getPortWithOffset

          public int getPortWithOffset()

      Description copied from interface: `Server`
      Get the actual port on which server is listening for the shutdown commands. If you do not set port offset, port is returned. If you set port offset, port offset + port is returned.
      Specified by:
        `getPortWithOffset` in interface `Server`
      Returns:
        the port with offset

    - #### getAddress

          public String getAddress()

      Return the address on which we listen to for shutdown commands.
      Specified by:
        `getAddress` in interface `Server`
      Returns:
        the address on which we listen to for shutdown commands.

    - #### setAddress

          public void setAddress(String address)

      Set the address on which we listen to for shutdown commands.
      Specified by:
        `setAddress` in interface `Server`
      Parameters:
        `address` - The new address

    - #### getShutdown

          public String getShutdown()

      Return the shutdown command string we are waiting for.
      Specified by:
        `getShutdown` in interface `Server`
      Returns:
        the shutdown command string we are waiting for.

    - #### setShutdown

          public void setShutdown(String shutdown)

      Set the shutdown command we are waiting for.
      Specified by:
        `setShutdown` in interface `Server`
      Parameters:
        `shutdown` - The new shutdown command

    - #### getCatalina

          public Catalina getCatalina()

      Return the outer Catalina startup/shutdown component if present.
      Specified by:
        `getCatalina` in interface `Server`
      Returns:
        the outer Catalina startup/shutdown component if present.

    - #### setCatalina

          public void setCatalina(Catalina catalina)

      Set the outer Catalina startup/shutdown component if present.
      Specified by:
        `setCatalina` in interface `Server`
      Parameters:
        `catalina` - the outer Catalina component

    - #### getUtilityThreads

          public int getUtilityThreads()

      Description copied from interface: `Server`
      Get the utility thread count.
      Specified by:
        `getUtilityThreads` in interface `Server`
      Returns:
        the thread count

    - #### setUtilityThreads

          public void setUtilityThreads(int utilityThreads)

      Description copied from interface: `Server`
      Set the utility thread count.
      Specified by:
        `setUtilityThreads` in interface `Server`
      Parameters:
        `utilityThreads` - the new thread count

    - #### getUtilityThreadsAsDaemon

          public boolean getUtilityThreadsAsDaemon()

      Get if the utility threads are daemon threads.
      Returns:
        the threads daemon flag

    - #### setUtilityThreadsAsDaemon

          public void setUtilityThreadsAsDaemon(boolean utilityThreadsAsDaemon)

      Set the utility threads daemon flag. The default value is true.
      Parameters:
        `utilityThreadsAsDaemon` - the new thread daemon flag

    - #### getPeriodicEventDelay

          public final int getPeriodicEventDelay()

      Returns:
        The period between two lifecycle events, in seconds

    - #### setPeriodicEventDelay

          public final void setPeriodicEventDelay(int periodicEventDelay)

      Set the new period between two lifecycle events in seconds.
      Parameters:
        `periodicEventDelay` - The period in seconds, negative or zero will disable events

    - #### addService

          public void addService(Service service)

      Add a new Service to the set of defined Services.
      Specified by:
        `addService` in interface `Server`
      Parameters:
        `service` - The Service to be added

    - #### stopAwait

          public void stopAwait()

    - #### await

          public void await()

      Wait until a proper shutdown command is received, then return. This keeps the main thread alive - the thread pool listening for http connections is daemon threads.
      Specified by:
        `await` in interface `Server`

    - #### findService

          public Service findService(String name)

      Description copied from interface: `Server`
      Find the specified Service
      Specified by:
        `findService` in interface `Server`
      Parameters:
        `name` - Name of the Service to be returned
      Returns:
        the specified Service (if it exists); otherwise return `null`.

    - #### findServices

          public Service[] findServices()

      Specified by:
        `findServices` in interface `Server`
      Returns:
        the set of Services defined within this Server.

    - #### getServiceNames

          public ObjectName[] getServiceNames()

      Returns:
        the JMX service names.

    - #### removeService

          public void removeService(Service service)

      Remove the specified Service from the set associated from this Server.
      Specified by:
        `removeService` in interface `Server`
      Parameters:
        `service` - The Service to be removed

    - #### getCatalinaBase

          public File getCatalinaBase()

      Specified by:
        `getCatalinaBase` in interface `Server`
      Returns:
        the configured base (instance) directory. Note that home and base may be the same (and are by default). If this is not set the value returned by `Server.getCatalinaHome()` will be used.

    - #### setCatalinaBase

          public void setCatalinaBase(File catalinaBase)

      Description copied from interface: `Server`
      Set the configured base (instance) directory. Note that home and base may be the same (and are by default).
      Specified by:
        `setCatalinaBase` in interface `Server`
      Parameters:
        `catalinaBase` - the configured base directory

    - #### getCatalinaHome

          public File getCatalinaHome()

      Specified by:
        `getCatalinaHome` in interface `Server`
      Returns:
        the configured home (binary) directory. Note that home and base may be the same (and are by default).

    - #### setCatalinaHome

          public void setCatalinaHome(File catalinaHome)

      Description copied from interface: `Server`
      Set the configured home (binary) directory. Note that home and base may be the same (and are by default).
      Specified by:
        `setCatalinaHome` in interface `Server`
      Parameters:
        `catalinaHome` - the configured home directory

    - #### addPropertyChangeListener

          public void addPropertyChangeListener(PropertyChangeListener listener)

      Add a property change listener to this component.
      Parameters:
        `listener` - The listener to add

    - #### removePropertyChangeListener

          public void removePropertyChangeListener(PropertyChangeListener listener)

      Remove a property change listener from this component.
      Parameters:
        `listener` - The listener to remove

    - #### toString

          public String toString()

      Return a String representation of this component.
      Overrides:
        `toString` in class `Object`

    - #### storeConfig

          public void storeConfig()
                           throws InstanceNotFoundException,
                                  MBeanException

      Write the configuration information for this entire `Server` out to the server.xml configuration file.
      Throws:
        `InstanceNotFoundException` - if the managed resource object cannot be found
        `MBeanException` - if the initializer of the object throws an exception, or persistence is not supported
        `RuntimeOperationsException` - if an exception is reported by the persistence mechanism

    - #### storeContext

          public void storeContext(Context context)
                            throws InstanceNotFoundException,
                                   MBeanException

      Write the configuration information for `Context` out to the specified configuration file.
      Parameters:
        `context` - the context which should save its configuration
      Throws:
        `InstanceNotFoundException` - if the managed resource object cannot be found
        `MBeanException` - if the initializer of the object throws an exception or persistence is not supported
        `RuntimeOperationsException` - if an exception is reported by the persistence mechanism

    - #### startInternal

          protected void startInternal()
                                throws LifecycleException

      Start nested components (`Service`s) and implement the requirements of `LifecycleBase.startInternal()`.
      Specified by:
        `startInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that prevents this component from being used

    - #### startPeriodicLifecycleEvent

          protected void startPeriodicLifecycleEvent()

    - #### stopInternal

          protected void stopInternal()
                               throws LifecycleException

      Stop nested components (`Service`s) and implement the requirements of `LifecycleBase.stopInternal()`.
      Specified by:
        `stopInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that needs to be reported

    - #### initInternal

          protected void initInternal()
                               throws LifecycleException

      Invoke a pre-startup initialization. This is used to allow connectors to bind to restricted ports under Unix operating environments.
      Overrides:
        `initInternal` in class `LifecycleMBeanBase`
      Throws:
        `LifecycleException` - If the initialisation fails

    - #### destroyInternal

          protected void destroyInternal()
                                  throws LifecycleException

      Description copied from class: `LifecycleMBeanBase`
      Sub-classes wishing to perform additional clean-up should override this method, ensuring that super.destroyInternal() is the last call in the overriding method.
      Overrides:
        `destroyInternal` in class `LifecycleMBeanBase`
      Throws:
        `LifecycleException` - If the destruction fails

    - #### getParentClassLoader

          public ClassLoader getParentClassLoader()

      Return the parent class loader for this component.
      Specified by:
        `getParentClassLoader` in interface `Server`
      Returns:
        the parent class loader for this component. If not set, return `Server.getCatalina()` `Catalina.getParentClassLoader()`. If catalina has not been set, return the system class loader.

    - #### setParentClassLoader

          public void setParentClassLoader(ClassLoader parent)

      Set the parent class loader for this server.
      Specified by:
        `setParentClassLoader` in interface `Server`
      Parameters:
        `parent` - The new parent class loader

    - #### getDomainInternal

          protected String getDomainInternal()

      Obtain the MBean domain for this server. The domain is obtained using the following search order:
      1. Name of first `Engine`.
      2. Name of first `Service`.
      Specified by:
        `getDomainInternal` in class `LifecycleMBeanBase`
      Returns:
        The name of the domain to use to register MBeans.

    - #### getObjectNameKeyProperties

          protected final String getObjectNameKeyProperties()

      Description copied from class: `LifecycleMBeanBase`
      Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
      Specified by:
        `getObjectNameKeyProperties` in class `LifecycleMBeanBase`
      Returns:
        The string representation of the key properties component of the desired `ObjectName`

    - #### getUtilityExecutor

          public ScheduledExecutorService getUtilityExecutor()

      Specified by:
        `getUtilityExecutor` in interface `Server`
      Returns:
        the utility executor managed by the Service.

Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.