You can deploy web applications, enterprise applications, and OSGi applications in
Liberty. You deploy an application by
either dropping the application into a previously defined dropins directory, or by adding an
application entry to the server configuration.
You can also deploy applications to Liberty servers by using developer tools.
About this task
By default, the "dropins" directory is automatically
monitored. If you drop an application into this directory, the application
is automatically deployed on the server. Similarly, if the application
is deleted from the directory, the application is automatically removed
from the server. The "dropins" directory can be used for applications
that do not require extra configuration, such as security role mapping.
If you put your applications in the "dropins" directory, you
must not include an entry for the application in the server configuration.
Otherwise, the server tries to load the application twice and an error
might occur. For applications that are not in the "dropins" directory,
you specify the location by using an application entry in the server
configuration. The location can be on the file system or at a URL.
Your
application can be packaged as an archive file, a directory,or as a loose application
where files are in multiple locations. For more information about
loose applications, see Loose applications.
For applications
in the "dropins" directory, the file name and file extension
are used by the application monitor to determine the type of application,
and to generate the application id and application name. For example,
if the archive file or directory is named snoop.war,
the application monitor assumes that the application is a web application
and that the application id and application name is "snoop".
For configured applications, the application type and name are specified.
For
more information about the default directory structure and the properties
that are associated with directories (for example server.config.dir),
see Directory locations and properties.
Note: If you modify an
application in the "dropins" directory, the application is restarted
unless the change is to a component of a WAR file outside of the WEB-INF folder.
- Deploy an application by dropping it into the dropins directory.
For example, by using the default directory structure, to
deploy an application you drop it into the ${server.config.dir}/dropins directory
(that is, wlp/usr/servers/server_name/dropins).
You
can deploy your application in any of the following ways:
- Place the archive file with its identifying suffix (.ear, .war,
and so on) directly into the /dropins directory.
For example, ${server.config.dir}/dropins/myApp.war
- Extract the archive file into a directory that includes the application
name and the identifying suffix. For example, ${server.config.dir}/dropins/myApp.war/WEB-INF/...
- Place the archive file or the extracted archive into a subdirectory
that includes the identifying suffix. For example, ${server.config.dir}/dropins/war/myApp/WEB-INF/...
- Deploy an application by adding it to the server configuration file.
Configure the
application element in the
server.xml
configuration file. For more information, see the descriptions of the
application
element in
Enterprise JavaBeans Lite 3.1,
Java Servlets 3.0, and
OSGi Blueprint. You must configure the following attributes for
the application:
- id
- Must be unique and is used internally by the server.
- name
- Must be unique and depending on the application. The value of name might be
used as the context-root of the application. For more information on how the context-root is set for
an application, see Deploying a web application to Liberty.
- type
- Specifies the type of application.
- For web applications, the supported type is war.
- For enterprise applications, the supported type is ear.
- For OSGi applications, the supported types are eba and
esa.
- location
- Specifies the location of the application. It can be an absolute path or a URL that you can
download the application from. It can also be the file name of your application (including file
extension if any).
If the application is available on the file
system, the location can either be the full path name or a simple
file name. If the location does not include the full path, the application
manager looks for the application in ${server.config.dir}/apps and ${shared.app.dir}.
If the application is available at a URL, the application manager
downloads the application to a temporary folder inside the server
work area, then starts the application.
Note: The location that
you specify for a configured application must not be in the "dropins" directory.
If you drop an application into the "dropins" directory, and
also specify the location in the server.xml file,
you are telling the server to deploy the application twice.
In
the following two examples, the location is the file system. If the
location is a URL, enter the URL in the location field.
<osgiApplication location="D:/apps/ImpactEBA.eba"/>
<webApplication location="ImpactWeb.war"/>
The
second example does not include the full path. In this case, you
must put the application in one of the following locations:
- ${server.config.dir}/apps
(that is, server_directory/user/servers/server_name/apps)
- ${shared.app.dir} (that is, liberty_install_location/usr/shared/apps)
You can deploy your application to the file system in
either of the following ways:
- Place the archive file with its identifying suffix (.ear, .war,
and so on) directly into the chosen location. For example, application_directory_path/myApp.war
- Extract the archive file into a subdirectory of the chosen location,
which is named with the application name and the identifying suffix.
For example, application_directory_path/myApp.war/WEB-INF/...
Note: - You must create the server-level apps directory,
whereas the shared apps directory is present
by default. See Directory locations and properties for more information
about the properties that are associated with the server directories.
- The application element can be set before
or after the server starts. If the element is set after the server
starts, the changes are picked up dynamically.
- Deploy applications on Liberty by using
developer tools.
- Deploy Contexts and Dependency (CDI) applications in Liberty
A Liberty server can be used to deploy CDI
applications by configuring the server for the CDI 1.2 Liberty feature. See Configuring Liberty for Contexts and Dependency Injection 1.2 for more information.
Applications that use contexts and dependency injection must have CDI enabled. For the CDI 1.2
Liberty feature, CDI is enabled if either:
- There is a beans.xml file with a bean discovery mode of
all.
- There is no beans.xml file or a blank beans.xml file
and classes with bean defining annotations. In this case, there must be a bean deployment
archive.
For more information on the different types of bean deployment archive recognized by the CDI 1.2
feature, see Contexts and Dependency Injection 1.2 behavior changes.
- Remove an application.
For applications that
are included in the server configuration, remove the reference to
the application from the server.xml file. The
application is then automatically removed from the server.
For
applications that are deployed to the "dropins" directory, delete
the application from the directory. The application is then automatically
removed from the server.
To uninstall all applications that
are in the "dropins" directory, set the application monitor dropinsEnabled property
to false as described in Controlling dynamic updates.