If you use Apache Tomcat for any sort of development work you’ve probably deployed lots of applications to it. There are a several ways to get your war files deployed:
- use the Tomcat Manager application in your browser
- use the Tomcat Ant Tasks included with Tomcat
- use Cargo and its plugins for ant and maven
Here's another way: a command line tool and python library for managing a Tomcat server.
How Do I Use It?
This package installs a command line utility called
easily scriptable using your favorite shell:
$ tomcat-manager --user=ace --password=newenglandclamchowder \ http://localhost:8080/manager deploy local sample.war /sampleapp $ echo $? 0
There is also an interactive mode:
$ tomcat-manager tomcat-manager>connect http://localhost:8080/manager ace Password: --connected to http://localhost:8080/manager as ace tomcat-manager>list Path Status Sessions Directory ------------------------ ------- -------- ------------------------------------ / running 0 ROOT /sampleapp stopped 0 sampleapp##9 /sampleapp running 0 sampleapp##8 /host-manager running 0 /usr/share/tomcat8-admin/host-manage /manager running 0 /usr/share/tomcat8-admin/manager
And for the ultimate in flexibility, you can use the python package directly:
>>> import tomcatmanager as tm >>> tomcat = tm.TomcatManager() >>> r = tomcat.connect(url="http://localhost:8080/manager", ... user="ace", password="newenglandclamchowder") >>> tomcat.is_connected True >>> r = tomcat.stop("/someapp") >>> r.ok False >>> r.status_message 'No context exists named /someapp'
What Can It Do?
Tomcatmanager has the following capabilities, all available from the command line, interactive mode, and as a python library:
- deploy - deploy a war file containing a tomcat application in the tomcat server
- redeploy - remove the application currently installed at a given path and install a new war file there
- undeploy - remove an application from the tomcat server
- start - start a tomcat application that has been deployed but isn't running
- stop - stop a tomcat application and leave it deployed on the server
- reload - stop and start a tomcat application
- sessions - show active sessions for a particular tomcat application
- expire - expire idle sessions
- list - show all installed applications
- serverinfo - show information about the server, including tomcat version, OS version and architecture, and jvm version
- status - show server status information in xml format
- vminfo - show diagnostic information about the jvm
- threaddump - show a jvm thread dump
- resources - show the global jdni resources configured in tomcat
- findleakers - show tomcat applications that leak memory
- sslconnectorciphers - show tls ciphers configured for each connector
- sslconnectorcerts - show tls certificate chain for each virtual host
- sslconnectortrustedcerts - show trusted certificates for each virtual host
- sslreload - reload tls certificate and key files
Complete documentation for the last released version is available at
http://tomcatmanager.readthedocs.io/en/stable/. It includes material
showing how to use
tomcat-manager from the command line or using
interactive mode. There is also a walkthrough of how to use the API and an
Documentation is also built from the develop branch, and published at https://tomcatmanager.readthedocs.io/en/latest/. The develop branch may not yet be released to PyPi, but you can see the documentation for what's coming up in the next release.
You'll need Python >= 3.7. Install using pip:
$ pip install tomcatmanager
Works on Windows, macOS, and Linux.
Works with Tomcat >= 8.5 and <= 10.1.
This library and associated tools do their work via the Tomcat Manager
web application included in the Tomcat distribution. You will need to
configure authentication in
tomcat-users.xml with access to the
<tomcat-users> ... <role rolename="manager-script"/> <user username="ace" password="newenglandclamchowder" roles="manager-script"/> ... </tomcat-users>