- Last Updated on 25 September 2013
This article describes the most common ways about how to deploy a Java web application on Tomcat, include the followings:
- Copying web application archive file (.war).
- Copying unpacked web application directory.
- Using Tomcat’s manager application.
Suppose you have Tomcat installed on your development computer and have read/write permission on Tomcat’s installation directory.
Table of content:
While working with deployment of Java web applications on Tomcat, you should prepare yourself with a strong grasp about the following stuff:
- $CATALINA_HOME: is an environment variable points to the directory where you installed Tomcat. For example, c:\Program Files\Apache Software Foundation\Tomcat 7.0 on Windows.
- $CATALINA_BASE: is an environment variable points to the directory of a particular instance of Tomcat (if you configure multiple instances of Tomcat). If this variable is not set explicitly, then it will be assigned the same value as $CATALINA_HOME.
- Web applications are put under $CATALINA_HOME\webapps directory.
- Document root: is the top-level directory of a web application, where all the resources (JSP pages, HTLM pages, Java classes, images…) that constitute that application are placed.
- Context path: is the name which is relative to the server’s address (i.e http://localhost) and represents the name of the web application. For example, if your web application is put under $CATALINA_HOME\webapps\MyWeb directory, it will be accessed by the URL http://localhost/MyWeb, and its context path is /MyWeb.
- WAR: is extension of a file that packs a web application directory hierarchy in zip format. WAR stands for Web ARchive. Java web applications are usually packed in WAR files for deployment. WAR files can be created by command line or an IDE like Eclipse.
- You must have a strong understanding of how a Java web application is organized in terms of directory layout and hierarchy structure.
- JAR libraries which are shared among web applications are put under $CATALINA_HOME\lib directory.
- Application-specific JAR libraries are put under web application’s WEB-INF\lib directory.
The following picture depicts what we have said so far:
In this method, the web application is packed as a WAR file. You may generate the WAR file using a tool or IDE like Eclipse, or someone just sent you the file.
- Copy the WAR file into $CATALINA_HOME\webapps directory.
- Restart the server. Whenever Tomcat is started, it will unpack the WAR file it found in the webapps directory and launch the application in that manner.
NOTE: Later if you want to update changes for the application, you must both replace the WAR file and delete the application’s unpacked directory, and then restart Tomcat.
In this method, you have the web application in its unpacked form.
- Copy the application’s directory from its location into $CATALINA_HOME\webapps directory.
- Restart the server, the application is deployed with the context path is name of the directory you copied.
NOTE: If you want to update changes for the application, you must replace the corresponding files under its document root directory.
Recommended Book: Apache Tomcat 7 User Guide
In this method, you can deploy the web application remotely via a web interface provided by Tomcat’s manager application. You must have user name and password to access this application. The manager application is installed by default, but not always. So be sure that it is installed with your version of Tomcat.
Using the manager application, you can:
- View a list of applications deployed on the server and their status.
- Start, stop and restart an individual application.
- Deploy a new web application either by uploading a WAR file or supplying a directory on the server.
- Undeploy an individual application.
By default, the manager application is deployed under context /manager, so to access it, type the following URL into your web browser’s address bar (the port number may vary, depending on your server’s configuration):
After supplying correct user name and password, you get into the following screen:
The list of deployed applications is shown at the top, scroll down a little bit to see the deployment section:
As we can see, there are two ways for deploying a web application using the manager:
- Deploy directory or WAR file located on server.
- WAR file to deploy.
The former way is only suitable if the application’s WAR file or directory resides on the server and we have to know the URL. The latter way is easier in which we can pick up a WAR file and upload it to the server.
Click Browse button to pick up a WAR file and click Deploy button. For example we select StrutsFileUploader.war file. As soon as the WAR file is uploaded to the server, it is unpacked into $CATALINA_HOME\webapps directory. The manager adds the newly deployed application to the list of applications:
The newly deployed application – StrutsFileUploader, is up and running, without the need of restarting the server.
Typically, a web application can be accessed by typing its context path follows the server’s IP/domain (including port number if any). For example, the StrutsFileUploader application above can be accessed in web browser by typing:
Or we can access an individual application from the manager application by click on the context path (first column in the list of applications).
Recommended Book: Apache Tomcat 7 User Guide