# Apache Tomcat 7

Version 7.0.42, Jul 2 2013

Links

- Docs Home
- FAQ
- User Comments

User Guide

- 1) Introduction
- 2) Setup
- 3) First webapp
- 4) Deployer
- 5) Manager
- 6) Realms and AAA
- 7) Security Manager
- 8) JNDI Resources
- 9) JDBC DataSources
- 10) Classloading
- 11) JSPs
- 12) SSL
- 13) SSI
- 14) CGI
- 15) Proxy Support
- 16) MBean Descriptor
- 17) Default Servlet
- 18) Clustering
- 19) Load Balancer
- 20) Connectors
- 21) Monitoring and Management
- 22) Logging
- 23) APR/Native
- 24) Virtual Hosting
- 25) Advanced IO
- 26) Additional Components
- 27) Mavenized
- 28) Security Considerations
- 29) Windows Service
- 30) Windows Authentication
- 31) Tomcat's JDBC Pool
- 32) WebSocket

Reference

- Release Notes
- Configuration
- Tomcat Javadocs
- Servlet Javadocs
- JSP 2.2 Javadocs
- EL 2.2 Javadocs
- JK 1.2 Documentation

Apache Tomcat Development

- Building
- Changelog
- Status
- Developers
- Architecture
- Functional Specs.
- Tribes

# Windows service HOW-TO

Table of Contents

> - Tomcat7 service application
> - Tomcat7w monitor application
> - Command line arguments
> - Command line parameters
> - Installing services
> - Updating services
> - Removing services
> - Debugging services
> - Multiple Instances

Tomcat7 service application

> Tomcat7 is a service application for running Tomcat7 as NT service.

Tomcat7w monitor application

> Tomcat7w is a GUI application for monitoring and configuring Tomcat services.

> The available command line options are:

> //ES// | Edit service configuration | This is the default operation. It is called if the no option is provided but the executable is renamed to servicenameW.exe
> //MS// | Monitor service | Put the icon in the system tray

Command line arguments

> Each command line directive is in the form of //XX//ServiceName

> The available command line options are:

> //TS// | Run the service as console application | This is the default operation. It is called if the no option is provided. The ServiceName is the name of the executable without exe suffix, meaning Tomcat7
> //RS// | Run the service | Called only from ServiceManager
> //SS// | Stop the service |
> //US// | Update service parameters |
> //IS// | Install service |
> //DS// | Delete service | Stops the service if running

Command line parameters

> Each command parameter is prefixed with --. If the command line is prefixed with ++ then it's value will be appended to the existing option. If the environment variable with the same name as command line parameter but prefixed with `PR_` exists it will take precedence. For example:

>     set PR_CLASSPATH=xx.jar

> is equivalent to providing

>     --Classpath=xx.jar

> as command line parameter.

> ParameterName | Default | Description
> --- | --- | ---
> --Description |  | Service name description (maximum 1024 characters)
> --DisplayName | ServiceName | Service display name
> --Install | procrun.exe //RS//ServiceName | Install image
> --Startup | manual | Service startup mode can be either auto or manual
> --DependsOn |  | List of services that this service depend on. Dependent services are separated using either # or ; characters
> --Environment |  | List of environment variables that will be provided to the service in the form key=value. They are separated using either # or ; characters. If you need to use either the # or ; character within a value then the entire value must be enclosed inside single quotes.
> --User |  | User account used for running executable. It is used only for StartMode java or exe and enables running applications as service under account without LogonAsService privilege.
> --Password |  | Password for user account set by --User parameter
> --JavaHome | JAVA_HOME | Set a different JAVA_HOME than defined by JAVA_HOME environment variable
> --Jvm | auto | Use either auto or specify the full path to the jvm.dll. You can use the environment variable expansion here.
> --JvmOptions | -Xrs | List of options in the form of -D or -X that will be passed to the JVM. The options are separated using either # or ; characters.
> --Classpath |  | Set the Java classpath
> --JvmMs |  | Initial memory pool size in MB
> --JvmMx |  | Maximum memory pool size in MB
> --JvmSs |  | Thread stack size in KB
> --StartImage |  | Executable that will be run.
> --StartPath |  | Working path for the start image executable.
> --StartClass |  | Class that will be used for startup.
> --StartParams |  | List of parameters that will be passed to either StartImage or StartClass. Parameters are separated using either # or ; character.
> --StartMethod | Main | Method name if differs then main
> --StartMode | executable | Can one of jvm java or exe
> --StopImage |  | Executable that will be run on Stop service signal.

--StopPath |  | Working path for the stop image executable.
--StopClass |  | Class that will be used on Stop service signal.
--StopParams |  | List of parameters that will be passed to either StopImage or StopClass. Parameters are separated using either # or ; character.
--StopMethod | Main | Method name if differs then main
--StopMode | executable | Can one of jvm java or exe
--StopTimeout | No Timeout | Defines the timeout in seconds that procrun waits for service to exit gracefully.
--LogPath | working path | Defines the path for logging
--LogPrefix | jakarta_service | Defines the service log filename
--LogLevel | INFO | Defines the logging level and can be either error, info, warn or debug
--StdOutput |  | Redirected stdout filename
--StdError |  | Redirected stderr filename

Installing services

> The safest way to manually install the service is to use the provided service.bat script. Administrator privileges are required to run this script. If necessary, you can use the `/user` switch to specify a user to use for the installation of the service.

> NOTE: On Windows Vista or any other operating system with User Account Control (UAC) you must either disable UAC or right-click on cmd.exe and select "Run as administrator" in order to run this script. If UAC is enabled neither being logged on with an Administrator account, nor using the `/user` switch is sufficient.

>     Install the service named 'Tomcat7'
>     C:\> service.bat install

> There is a 2nd optional parameter that lets you specify the name of the service, as displayed in Windows services.

>     Install the service named 'MyService'
>     C:\> service.bat install MyService

> If using tomcat7.exe, you need to use the //IS// parameter.

>     Install the service named 'Tomcat7'
>     C:\> tomcat7 //IS//Tomcat7 --DisplayName="Apache Tomcat 7" \
>     C:\> --Install="C:\Program Files\Tomcat\bin\tomcat7.exe" --Jvm=auto \
>     C:\> --StartMode=jvm --StopMode=jvm \
>     C:\> --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start \
>     C:\> --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop

Updating services

> To update the service parameters, you need to use the //US// parameter.

>     Update the service named 'Tomcat7'
>     C:\> tomcat7 //US//Tomcat7 --Description="Apache Tomcat Server - http://tomcat.apache.org/ " \
>     C:\> --Startup=auto --Classpath=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar

> If you gave the service an optional name, you need to specify it like this:

>     Update the service named 'MyService'
>     C:\> tomcat7 //US//MyService --Description="Apache Tomcat Server - http://tomcat.apache.org/ " \
>     C:\> --Startup=auto --Classpath=%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar

Removing services

> To remove the service, you need to use the //DS// parameter.
> If the service is running it will be stopped and then deleted.

>     Remove the service named 'Tomcat7'
>     C:\> tomcat7 //DS//Tomcat7

> If you gave the service an optional name, you need to specify it like this:

>     Remove the service named 'MyService'
>     C:\> tomcat7 //DS//MyService

Debugging services

> To run the service in console mode, you need to use the //TS// parameter. The service shutdown can be initiated by pressing CTRL+C or CTRL+BREAK. If you rename the tomcat7.exe to testservice.exe then you can just execute the testservice.exe and this command mode will be executed by default.

>     Run the service named 'Tomcat7' in console mode
>     C:\> tomcat7 //TS//Tomcat7 [additional arguments]
>     Or simply execute:
>     C:\> tomcat7

Multiple Instances

> Tomcat supports installation of multiple instances. You can have a single installation of Tomcat with multiple instances running on different IP/port combinations, or multiple Tomcat versions, each running one or more instances on different IP/ports.

> Each instance folder will need the following structure:

> - conf
> - logs
> - temp
> - webapps
> - work

> At a minimum, conf should contain a copy of the following files from CATALINA_HOME\conf\. Any files not copied and edited, will be picked up by default from CATALINA_HOME\conf, i.e. CATALINA_BASE\conf files override defaults from CATALINA_HOME\conf.

> - server.xml
> - web.xml

> You must edit CATALINA_BASE\conf\server.xml to specify a unique IP/port for the instance to listen on. Find the line that contains

>     <Connector port="8080" ...

> and add an address attribute and/or update the port number so as to specify a unique IP/port combination.

> To install an instance, first set the CATALINA_HOME environment variable to the name of the Tomcat installation directory. Then create a second environment variable CATALINA_BASE and point this to the instance folder. Then run "service install" command specifying a service name.

>     set CATALINA_HOME=c:\tomcat_7
>     set CATALINA_BASE=c:\tomcat_7\instances\instance1
>     service install instance1

> To modify the service settings, you can run tomcat7w //ES//instance1.

> For additional instances, create additional instance folder, update the CATALINA_BASE environment variable, and run the service install again.

>     set CATALINA_BASE=c:\tomcat_7\instances\instance2
>     service install instance2

Comments

> Notice: This comments section collects your suggestions on improving documentation for Apache Tomcat.
> If you have trouble and need help, read Find Help page and ask your question on the tomcat-users mailing list. Do not ask such questions here. This is not a Q&A section.
> The Apache Comments System is explained here. Comments may be removed by our moderators if they are either implemented or considered invalid/off-topic.

Copyright © 1999-2013, Apache Software Foundation