public class ArkTomcatEmbeddedWebappClassLoader
extends org.apache.catalina.loader.ParallelWebappClassLoader
ParallelWebappClassLoader that does not consider the
system classloader. This is required to
ensure that any custom context class loader is always used (as is the case with some
executable archives).
There are two case to initialize tomcat for multi biz model:
1. When included this Tomcat ClassLoader by
ArkTomcatEmbeddedWebappClassLoader,
this will ensure there should always be one tomcat instance with only one port.
In this case, each module use same web port, must define different web context path.
--------------
│ Biz Module A │\
-------------- \
\----→ Tomcat 1: Port 1
-------------- /
│ Biz Module B │/
--------------
2. If not included, then each biz module with mvc will create a tomcat,
In this case, each module can define any web context path, but must define different web server port.
--------------
│ Biz Module A │ ----→ Tomcat 1: Port 1
--------------
--------------
│ Biz Module B │ ----→ Tomcat 2: Port2
--------------
Actually, the mostly used in prod env is the first case, so we need to include a web plugin.org.apache.catalina.loader.WebappClassLoaderBase.PrivilegedFindClassByName, org.apache.catalina.loader.WebappClassLoaderBase.PrivilegedGetClassLoader, org.apache.catalina.loader.WebappClassLoaderBase.PrivilegedJavaseGetResourcedelegate, loaderPC, parent, permissionList, resourceEntries, resources, securityManager, smAFTER_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 and Description |
|---|
ArkTomcatEmbeddedWebappClassLoader() |
ArkTomcatEmbeddedWebappClassLoader(ClassLoader parent)
NOTE: super web class loader will set parent to systemClassLoader if 'parent' param value is null.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addURL(URL url) |
URL |
findResource(String name) |
Enumeration<URL> |
findResources(String name) |
Class<?> |
loadClass(String name,
boolean resolve) |
copyWithoutTransformersaddLifecycleListener, addTransformer, check, checkStateForClassLoading, checkStateForResourceLoading, clearReferences, copyStateWithoutTransformers, destroy, doDefineClass, filter, findClass, findClassInternal, findLifecycleListeners, findLoadedClass0, getClearReferencesHttpClientKeepAliveThread, getClearReferencesLogFactoryRelease, getClearReferencesObjectStreamClassCaches, getClearReferencesRmiTargets, getClearReferencesStopThreads, getClearReferencesStopTimerThreads, getClearReferencesThreadLocals, getContextName, getDelegate, getHostName, getJavaseClassLoader, getPermissions, getResource, getResourceAsStream, getResources, getResources, getServiceName, getSkipMemoryLeakChecksOnJvmShutdown, getState, getStateName, getURLs, getWebappName, hasLoggingConfig, init, isPackageSealed, loadClass, modified, refreshPolicy, removeLifecycleListener, removeTransformer, setClearReferencesHttpClientKeepAliveThread, setClearReferencesLogFactoryRelease, setClearReferencesObjectStreamClassCaches, setClearReferencesRmiTargets, setClearReferencesStopThreads, setClearReferencesStopTimerThreads, setClearReferencesThreadLocals, setDelegate, setJavaseClassLoader, setResources, setSkipMemoryLeakChecksOnJvmShutdown, start, stop, toStringclose, definePackage, newInstance, newInstancedefineClass, defineClassclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignerspublic ArkTomcatEmbeddedWebappClassLoader()
public ArkTomcatEmbeddedWebappClassLoader(ClassLoader parent)
parent - public URL findResource(String name)
findResource in class org.apache.catalina.loader.WebappClassLoaderBasepublic Enumeration<URL> findResources(String name) throws IOException
findResources in class org.apache.catalina.loader.WebappClassLoaderBaseIOExceptionpublic Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
loadClass in class org.apache.catalina.loader.WebappClassLoaderBaseClassNotFoundExceptionprotected void addURL(URL url)
addURL in class org.apache.catalina.loader.WebappClassLoaderBaseCopyright © 2024. All rights reserved.