# Apache Tomcat 7

Version 7.0.27, Mar 31 2012

Links

- Docs Home
- FAQ

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.

# 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

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 try

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.

> Note: PR_DEPENDSON, PR_ENVIRONMENT, PR_JVMOPTIONS, PR_JVMMS, PR_JVMMX, PR_JVMSS, PR_STARTPARAMS, PR_STOPPARAMS and PR_STOPTIMEOUT will not work until this bug is fixed: DAEMON-49

> 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

> 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

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

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

Copyright © 1999-2012, Apache Software Foundation