|
Bootstrap
|
The Bootstrap class loader loads the basic runtime classes provided
by the JVM, plus any classes from JAR files present in the system
extensions directory. It is parent to the System class loader. To
add JAR files to the system extensions, directory, see Using the Java Optional Package Mechanism.
|
|
System
|
The System
class loader loads Application Server launch classes. It is parent to the
Shared Chain class loader. It is created based on the system-classpath attribute of the java-config element
in the domain.xml file. In the developer profile,
select the Application Server component in the Admin Console and the JVM Settings
tab. In the cluster
profile, select the JVM Settings component under the relevant configuration. Then
select the Path Settings tab and edit the System
Classpath field. See Using the System Class Loader and java-config in Sun Java System Application Server 9.1 Administration Reference.
Add the classes to the system-classpath attribute
of the domain administration server (DAS) in addition to the system-classpath attribute on the server instances that use the classes.
The default name for the DAS configuration is server-config.
|
|
Shared Chain
|
The Shared Chain class loader loads
most of the core Application Server classes. It is parent to the MBean
class loader and the Common class loader. Classes specified by the classpath-prefix and classpath-suffix attributes
of the java-config element in the domain.xml file
are added to this class loader. In the developer profile,
select the Application Server component in the Admin Console and the JVM Settings
tab. In the cluster
profile, select the JVM Settings component under the relevant configuration. Then
select the Path Settings tab and edit the Classpath
Prefix or Classpath Suffix field.
The environment classpath is included if env-classpath-ignored="false" is set in the java-config element.
Use classpath-prefix to place libraries ahead
of Application Server implementation classes in the shared chain. The classpath-prefix is ideal for placing development and diagnostic
patches. To avoid overriding implementation classes, use classpath-suffix to place libraries after implementation classes in the
shared chain.
Add the classes to the classpath-prefix or classpath-suffix attribute of the DAS in addition to the
corresponding attribute on the server instances that use the classes.
The default name for the DAS configuration is server-config.
|
|
MBean
|
The MBean class loader loads the MBean implementation classes.
See MBean Class Loading.
|
|
Common
|
The Common class
loader loads classes in the domain-dir/lib/classes directory,
followed by JAR files in the domain-dir/lib directory.
It is parent to the Connector class loader. No special classpath settings
are required. The existence of these directories is optional; if they
do not exist, the Common class loader is not created. See Using the Common Class Loader.
|
|
Connector
|
The Connector class loader is a single class loader instance
that loads individually deployed connector modules, which are shared
across all applications. It is parent to the LifeCycleModule class
loader and the Application class loader.
|
|
LifeCycleModule
|
The LifeCycleModule class loader is created once per lifecycle
module. Each lifecycle-module element’s classpath attribute is used to construct its own class loader.
For more information on lifecycle modules, see Chapter 13, Developing Lifecycle Listeners.
|
|
Application
|
The Application class loader loads the classes in a specific
enabled individually deployed module or Java EE application. One instance
of this class loader is present in each class loader universe; see Class Loader Universes. The Application
class loader is created with a list of URLs that point to the locations
of the classes it needs to load. It is parent to the Web class loader.
The Application class loader loads classes in the following
order:
-
Classes specified by the library-directory element
in the application.xml deployment descriptor or
the –-libraries option during deployment;
see Application-Specific Class Loading
-
Classes specified by the application's or module's location attribute in the domain.xml file,
determined during deployment
-
Classes in the classpaths of the application's sub-modules
-
Classes in the application's or module's stubs directory
The location attribute points to domain-dir/applications/j2ee-apps/app-name or domain-dir/applications/j2ee-modules/module-name.
The stubs directory is domain-dir/generated/ejb/j2ee-apps/app-name or domain-dir/generated/ejb/j2ee-modules/module-name.
|
|
Web
|
The Web class loader loads the servlets and other classes in
a specific enabled web module or a Java EE application that contains
a web module. This class loader is present in each class loader universe
that contains a web module; see Class Loader Universes. One instance is created for each web module. The
Web class loader is created with a list of URLs that point to the
locations of the classes it needs to load. The classes it loads are
in WEB-INF/classes or WEB-INF/lib/*.jar.
It is parent to the JSP Engine class loader.
|
|
JSP
Engine
|
The JSP Engine class loader loads compiled JSP classes of enabled
JSP files. This class loader is present in each class loader universe
that contains a JSP page; see Class Loader Universes. The JSP Engine class loader is created with a list
of URLs that point to the locations of the classes it needs to load.
|