This documentation is for WSO2 API Manager 2.1.0. View documentation for the latest release.

All docs This doc

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

WSO2 Carbon and any Carbon-based product can be run as a Windows service as described in the following sections:

Table of Contents


Before you begin:

  • See our compatibility matrix to find out if this version of the product is fully tested on your OS.
  • See the known incompatibilities section to find out if this version of the product has issues running on your OS due to the JDK version.


  • Install JDK and set up the JAVA_HOME environment variable.
  • Download and install a service wrapper library to use for running your WSO2 product API Manager as a Windows service. WSO2 recommends Yet Another Java Service Wrapper ( YAJSW ) version 11.03, and several WSO2 products provide a default  wrapper.conf  file in their  <PRODUCT_HOME>/bin/yajsw/  directory. The instructions below describe how to set up this file.



If you want to set additional properties from an external registry at runtime, store sensitive information like usernames and passwords for connecting to the registry in a properties file and secure it with secure vault.

You must manually add
titleManual Configurations

Add the following property class path to the wrapper.conf file manually to avoid errors in the management consoleWSO2 API Manager Management Console:

Code Block
languagebash = -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false 
If this property is not added, you may come across an exception that will result in blank pages when you sign into the product management console.
Code Block
titleMinimal wrapper.conf configuration
# working directory
# Java Main class. 
# YAJSW: default is ""
# tmp folder
# yajsw creates temporary files named in_.. out_.. err_.. jna..
# per default these are placed in jna.tmpdir.
# jna.tmpdir is set in setenv batch file to <yajsw>/tmp
wrapper.tmp.path = ${jna_tmpdir}
# Application main class or native executable
# One of the following properties MUST be defined
# Java Application main class
# Log Level for console output.  (See docs for log levels)
# Log file to use for wrapper output logging.
# Format of output for the log file.  (See docs for formats)
# Log Level for log file output.  (See docs for log levels)
# Maximum size that the log file will be allowed to grow to before
#  the log is rolled. Size is specified in bytes.  The default value
#  of 0, disables log rolling by size.  May abbreviate with the 'k' (kB) or
#  'm' (mB) suffix.  For example: 10m = 10 megabytes.
# If wrapper.logfile does not contain the string ROLLNUM it will be automatically added as suffix of the file name
# Maximum number of rolled log files which will be allowed before old
#  files are deleted.  The default value of 0 implies no limit.
# Title to use when running as a console
wrapper.console.title="WSO2 Carbon"
# Wrapper Windows Service and Posix Daemon Properties
# Name of the service"WSO2CARBON"
# Display name of the service
wrapper.ntservice.displayname="WSO2 Carbon"
# Description of the service
wrapper.ntservice.description="Carbon Kernel"
# Wrapper System Tray Properties
# enable system tray
wrapper.tray = true
# TCP/IP port. If none is defined multicast discovery is used to find the port
# Set the port in case multicast is not possible.
wrapper.tray.port = 15002
# Exit Code Properties
# Restart on non zero exit code
# Trigger actions on console output
# On Exception show message in system tray
# genConfig: further Properties generated by genConfig
placeHolderSoGenPropsComeHere= = ${java_home}\\bin\\java = ${java_home}\\lib\\tools.jar = ${carbon_home}\\bin\\*.jar = org.wso2.carbon.bootstrap.Bootstrap = RUN = -Xbootclasspath\/a:${carbon_home}\\lib\\xboot\\*.jar = -Xms256m = -Xmx1024m = -XX:MaxPermSize=256m = -XX:+HeapDumpOnOutOfMemoryError = -XX:HeapDumpPath=${carbon_home}\\repository\\logs\\heap-dump.hprof = = -Djava.endorsed.dirs=${carbon_home}\\lib\\endorsed;${java_home}\\jre\\lib\\endorsed = -Dcarbon.registry.root=\/ = -Dcarbon.home=${carbon_home} = -Dwso2.server.standalone=true = -Djava.command=${java_home}\\bin\\java =${carbon_home}\\tmp = -Dcatalina.base=${carbon_home}\\lib\\tomcat = -Djava.util.logging.config.file=${carbon_home}\\repository\\conf\\tomcat\\ = -Dcarbon.config.dir.path=${carbon_home}\\repository\\conf = -Dcarbon.logs.path=${carbon_home}\\repository\\logs = -Dcomponents.repo=${carbon_home}\\repository\\components\\plugins = -Dconf.location=${carbon_home}\\repository\\conf = -Dcom.atomikos.icatch.file=${carbon_home}\\lib\\ = -Dcom.atomikos.icatch.hide_init_file_path=true = -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true = -Dcom.sun.jndi.ldap.connect.pool.authentication=simple = -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 = -Dorg.terracotta.quartz.skipUpdateCheck=true = -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false = -Dfile.encoding=UTF8 = -DworkerNode=false = -Dorg.wso2.ignoreHostnameVerification=true

Setting up CARBON_HOME

Extract the Carbon-based product WSO2 API Manager that you want to run as a Windows service, and then set the Windows environment variable CARBON_HOME to the extracted product directory location . For example, if you want to run ESB 4.5.0 as a Windows service, you would set CARBON_HOME to the extracted wso2esb-4.5.0 directory.Image Removedwhich is wso2am-2.1.0 here.

Image Added

Running the product in console mode

You will now verify that YAJSW is configured correctly for running the Carbon-based product WSO2 API Manager as a Windows service.

  1. Open a Windows command prompt and go to the <YAJSW_HOME>/bat/ directory. For example:

    Code Block
    cd C:\Documents and Settings\yajsw_home\bat
  2. Start the wrapper in console mode using the following command:

    Code Block

    For example:


To install the Carbon-based product productWSO2 API Manager as a Windows service, execute the following command in the <YAJSW_HOME>/bat/ directory: