You can configure whether your application and web modules use their own class loaders to
load classes or use different class loaders, as well as configure the reloading of classes when
application files are updated. Class loaders enable an application to access repositories of
available classes and resources.
Before you begin
This topic assumes that your application or module is already deployed on a server.
The following note applies to the
xmi file references in this topic:
Supported configurations: For IBM® extension and binding files, the
.xmi or
.xml file name extension is different depending on whether you are using a pre-Java™ EE 5 application or module or a Java EE 5 or later application or module. An IBM
extension or binding file is named
ibm-*-ext.xmi or
ibm-*-bnd.xmi where
* is the type of
extension or binding file such as
app,
application,
ejb-jar, or
web. The following conditions apply:
- For an application or module that uses a Java EE version
prior to version 5, the file extension must be .xmi.
- For an application or module that uses Java EE 5 or
later, the file extension must be .xml. If .xmi files are
included with the application or module, the product ignores the .xmi
files.
However, a Java EE 5 or later module can exist within an application that includes pre-Java EE 5 files and uses the .xmi file name
extension.
The ibm-webservices-ext.xmi,
ibm-webservices-bnd.xmi, ibm-webservicesclient-bnd.xmi,
ibm-webservicesclient-ext.xmi, and ibm-portlet-ext.xmi
files continue to use the .xmi file extensions.
About this task
Class loaders affect whether your application and its modules find the resources that they need
to run effectively. You can select whether your application and web modules use their own class
loaders to load classes, or use a parent class loader.
An application class loader groups Enterprise JavaBeans (EJB) modules, shared libraries, resource adapter archives (RAR files), and
dependency Java archive (JAR) files associated to an
application. Dependency JAR files are JAR files that contain code which can be used by both
enterprise beans and servlets.
An application class loader is the parent of a web application archive (WAR) class loader. By
default, a web module has its own WAR class loader to load the contents of the web module. The WAR
class-loader policy value of an application class loader determines whether the WAR class loader or
the application class loader is used to load the contents of the Web module.
You can also select whether classes are reloaded when application files are updated. For EJB
modules or any non-web modules, enabling class reloading causes the application server run time to
stop and start the application to reload application classes. For web modules such as servlets and
JavaServer Pages (JSP) files, a web container reloads a web module only when the IBM extension reloadingEnabled
in the
ibm-web-ext.xmi file is set to true
.
To configure use of class loaders by your application and web modules, use the Class loading and update detection page of the administrative
console.
Attention: If an application is running, changing an application
setting causes the application to restart. On stand-alone servers, the application restarts after
you save the change. On multiple-server products, the application restarts after you save the change
and files synchronize on the node where the application is installed. To control when
synchronization occurs on multiple-server products, deselect Synchronize changes with
nodes on the Console preferences page.
Procedure
- Click to access the
Class loading and update detection page.
- Specify whether to reload application classes when the application or its files are
updated.
By default, class reloading is not enabled. Select Override class reloading settings
for web and EJB modules to choose to reload application classes. You might specify
different values for EJB modules and for web modules such as servlets and JSP files.
- Specify the number of seconds to scan the application's file system for updated
files.
The value specified for Polling interval for updated files takes effect
only if class reloading is enabled. The default is the value of the reloading interval attribute in
the IBM extension (META-INF/ibm-application-ext.xmi) file of the enterprise
application (EAR file). You might specify different values for EJB modules and for web modules such
as servlets and JSP files.
To enable reloading, specify an integer value that is greater than zero (for example, 1 to
2147483647).
To disable reloading, specify zero (0).
- Specify the class loader order for the application.
The application class loader order specifies whether the class loader searches in the parent
class loader or in the application class loader first to load a class. The default is to search in
the parent class loader before searching in the application class loader to load a class.
Select either of the following values for Class loader order:
Option |
Description |
Classes loaded with parent class loader first |
Causes the class loader to search in the parent class loader first to load a class. This
value is the standard for Development Kit class loaders and WebSphere® Application Server class loaders. |
Classes loaded with local class loader first (parent last) |
Causes the class loader to search in the application class loader first to load a class. By
specifying Classes loaded with local class loader first (parent last) , your
application can override classes contained in the parent class loader.Attention: Specifying the Classes loaded with local class loader first (parent last) value
might result in LinkageErrors or ClassCastException messages if you have mixed use of overridden
classes and non-overridden classes.
|
- Specify whether to use a single or multiple class loaders to load web application
archives (WAR files) of your application.
By default, web modules have their own WAR class loader to load the contents of the
WEB-INF/classes and WEB-INF/lib directories. The default
WAR class loader value is Class loader for each WAR file in application
, which uses
a separate class loader to load each WAR file. Setting the value to Single class loader for
application
causes the application class loader to load the web module contents as well as
the EJB modules, shared libraries, RAR files, and dependency JAR files associated to the
application. The application class loader is the parent of the WAR class loader.
Select either of the following values for WAR class loader policy:
Option |
Description |
Class loader for each WAR file in application |
Uses a different class loader for each WAR file. |
Single class loader for application |
Uses a single class loader to load all of the WAR files in your application. |
- Click OK.
Results
The application or module configuration is changed. The application or stand-alone web module is
restarted so the changes take effect.
What to do next
If the application or module is deployed on a cluster and you have no
more configuration changes to make, click Rollout Update on the Enterprise
applications page to propagate the changed configuration on all cluster members of the cluster on
which the application or module is deployed. Rollout Update sequentially
updates the configuration on the nodes that contain cluster members.
Save changes to your administrative configuration.
On multiple-server products, the application binaries are transferred
to nodes when the configuration changes on the deployment manager synchronize with configurations
for individual nodes on which the application will run.