# Class Tomcat.ExistingStandardWrapper

java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.LifecycleMBeanBase
org.apache.catalina.core.ContainerBase
org.apache.catalina.core.StandardWrapper
org.apache.catalina.startup.Tomcat.ExistingStandardWrapper

All Implemented Interfaces:
  `ServletConfig, MBeanRegistration, NotificationBroadcaster, NotificationEmitter, Container, JmxEnabled, Lifecycle, Wrapper`

Enclosing class:
  `Tomcat`

public static class Tomcat.ExistingStandardWrapper extends StandardWrapper
Helper class for wrapping existing servlets. This disables servlet lifecycle and normal reloading, but also reduces overhead and provide more direct control over the servlet.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class ContainerBase

  `ContainerBase.ContainerBackgroundProcessor, ContainerBase.ContainerBackgroundProcessorMonitor`

  ### Nested classes/interfaces inherited from interface Lifecycle

  `Lifecycle.SingleUse`

- ## Field Summary

  ### Fields inherited from class StandardWrapper

  `asyncSupported, available, broadcaster, classLoadTime, countAllocated, DEFAULT_SERVLET_METHODS, enabled, facade, instance, instanceInitialized, isJspServlet, jspMonitorON, loadOnStartup, loadTime, mappings, multipartConfigElement, notificationInfo, parameters, references, runAs, sequenceNumber, servletClass, swallowOutput, unloadDelay, unloading`

  ### Fields inherited from class ContainerBase

  `accessLog, backgroundProcessorDelay, backgroundProcessorFuture, children, cluster, listeners, logger, logName, monitorFuture, name, parent, parentClassLoader, pipeline, sm, startChildren, startStopExecutor, support`

  ### Fields inherited from interface Container

  `ADD_CHILD_EVENT, ADD_VALVE_EVENT, REMOVE_CHILD_EVENT, REMOVE_VALVE_EVENT`

  ### Fields inherited from interface 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`

  ### Fields inherited from interface Wrapper

  `ADD_MAPPING_EVENT, REMOVE_MAPPING_EVENT`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ExistingStandardWrapper(Servlet existing)`
  Wraps the given servlet.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `getAvailable()`
  Returns the available date/time for this servlet, in milliseconds since the epoch.
  `Servlet`
  `getServlet()`
  Returns the associated Servlet instance.
  `String`
  `getServletClass()`
  Returns the fully qualified servlet class name for this servlet.
  `boolean`
  `isUnavailable()`
  Returns whether this Servlet is currently unavailable.
  `Servlet`
  `loadServlet()`
  Load and initialize an instance of this servlet, if there is not already an initialized instance.

  ### Methods inherited from class StandardWrapper

  `addChild, addInitParameter, addMapping, addNotificationListener, addSecurityReference, allocate, backgroundProcess, deallocate, findInitParameter, findInitParameters, findMappings, findSecurityReference, findSecurityReferences, getAllDeclaredMethods, getClassLoadTime, getCountAllocated, getErrorCount, getInitParameter, getInitParameterNames, getLoadOnStartup, getLoadOnStartupString, getLoadTime, getMaxTime, getMinTime, getMultipartConfigElement, getNotificationInfo, getObjectNameKeyProperties, getProcessingTime, getRequestCount, getRootCause, getRunAs, getServletContext, getServletMethods, getServletName, incrementErrorCount, isAsyncSupported, isEnabled, isOverridable, load, removeInitParameter, removeMapping, removeNotificationListener, removeNotificationListener, removeSecurityReference, setAsyncSupported, setAvailable, setEnabled, setLoadOnStartup, setLoadOnStartupString, setMultipartConfigElement, setOverridable, setParent, setRunAs, setServlet, setServletClass, setServletName, startInternal, stopInternal, unavailable, unload`

  ### Methods inherited from class ContainerBase

  `addContainerListener, addPropertyChangeListener, addValve, destroyInternal, findChild, findChildren, findContainerListeners, fireContainerEvent, getAccessLog, getBackgroundProcessorDelay, getCatalinaBase, getCatalinaHome, getChildren, getCluster, getClusterInternal, getDomainInternal, getLogger, getLogName, getMBeanKeyProperties, getName, getParent, getParentClassLoader, getPipeline, getRealm, getRealmInternal, getStartChildren, getStartStopThreads, logAccess, removeChild, removeContainerListener, removePropertyChangeListener, setBackgroundProcessorDelay, setCluster, setName, setParentClassLoader, setRealm, setStartChildren, setStartStopThreads, threadStart, threadStop, toString`

  ### Methods inherited from class LifecycleMBeanBase

  `getDomain, getObjectName, initInternal, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister`

  ### Methods inherited from class LifecycleBase

  `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface Container

  `addContainerListener, addPropertyChangeListener, findChild, findChildren, findContainerListeners, fireContainerEvent, getAccessLog, getBackgroundProcessorDelay, getCatalinaBase, getCatalinaHome, getCluster, getDomain, getLogger, getLogName, getMBeanKeyProperties, getName, getObjectName, getParent, getParentClassLoader, getPipeline, getRealm, getStartStopThreads, logAccess, removeChild, removeContainerListener, removePropertyChangeListener, setBackgroundProcessorDelay, setCluster, setName, setParentClassLoader, setRealm, setStartStopThreads`

  ### Methods inherited from interface Lifecycle

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

- ## Constructor Details

  - ### ExistingStandardWrapper

    public ExistingStandardWrapper(Servlet existing)
    Wraps the given servlet.
    Parameters:
      `existing` - the servlet instance to wrap

- ## Method Details

  - ### loadServlet

    public Servlet loadServlet() throws ServletException
    Description copied from class: `StandardWrapper`
    Load and initialize an instance of this servlet, if there is not already an initialized instance. This can be used, for example, to load servlets that are marked in the deployment descriptor to be loaded at server startup time.
    Overrides:
      `loadServlet` in class `StandardWrapper`
    Returns:
      the loaded Servlet instance
    Throws:
      `ServletException` - for a Servlet load error

  - ### getAvailable

    public long getAvailable()
    Description copied from interface: `Wrapper`
    Returns the available date/time for this servlet, in milliseconds since the epoch. If this date/time is in the future, any request for this servlet will return an SC_SERVICE_UNAVAILABLE error. If it is zero, the servlet is currently available. A value equal to Long.MAX_VALUE is considered to mean that unavailability is permanent.
    Specified by:
      `getAvailable` in interface `Wrapper`
    Overrides:
      `getAvailable` in class `StandardWrapper`
    Returns:
      the available date/time in milliseconds since the epoch

  - ### isUnavailable

    public boolean isUnavailable()
    Description copied from interface: `Wrapper`
    Returns whether this Servlet is currently unavailable.
    Specified by:
      `isUnavailable` in interface `Wrapper`
    Overrides:
      `isUnavailable` in class `StandardWrapper`
    Returns:
      `true` if this Servlet is currently unavailable

  - ### getServlet

    public Servlet getServlet()
    Description copied from interface: `Wrapper`
    Returns the associated Servlet instance.
    Specified by:
      `getServlet` in interface `Wrapper`
    Overrides:
      `getServlet` in class `StandardWrapper`
    Returns:
      the associated Servlet instance

  - ### getServletClass

    public String getServletClass()
    Description copied from interface: `Wrapper`
    Returns the fully qualified servlet class name for this servlet.
    Specified by:
      `getServletClass` in interface `Wrapper`
    Overrides:
      `getServletClass` in class `StandardWrapper`
    Returns:
      the servlet class name