# 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