10.2 Managing Web Applications Deployed to Tomcat

10.2.1 Problem

You want to manage your web applications deployed to Tomcat.

10.2.2 Solution

Tomcat's Manager application provides the tools necessary to deploy, undeploy, list currently loaded web applications, and start and stop a web application, along with numerous other tasks.

10.2.3 Discussion

Tomcat ships with a built-in application to manage web applications. By default, this web application is installed on the context path /manager, and from here on we refer to it as the Manager application. The ability to deploy and undeploy a web application while the server is running is critical for any production or testing environment. For example, if there is a new version of a web application to install and the server does not support hot deploying, you must stop and restart the server before the new web application is loaded. Other running web applications are stopped, which is unacceptable in a production environment. Also, the ability to make and test small code changes quickly is critical because it takes too long to restart most servers.

The Manager application requires an authenticated user who has a manager role. For good reasonyou do not want a would-be hacker on the Internet to install web applications, or possibly worse, remove installed web applications.

First, you need to set up a username and password, if an appropriate one does not already exist, and assign the manager role to it. By default, Tomcat is configured to look up authentication and authorization data from the file $CATALINA_HOME/conf/tomcat-users.xml. Here is how to set up a new user who has access to the Manager application:

<user username="javaxp" password="secret" roles="manager"/>

Once you have Tomcat set up with the appropriate authentication and authorization information, you may start up Tomcat and access the Manager application.

10.2.4 See Also

Recipe 10.3 shows how to hot deploy a web application to Tomcat. Recipe 10.4 shows how to remove a web application from Tomcat. Recipe 10.10 shows how to deploy a web application to JBoss.