Installing as a Windows Service


Before you begin:


  • Install JDK and set up the JAVA_HOME environment variable.
  • Download and install a service wrapper library to use for running WSO2 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.

Setting up the YAJSW wrapper configuration file

The configuration file used for wrapping Java Applications by YAJSW is wrapper.conf , which is located in the <YAJSW_HOME>/conf/ directory and in the <PRODUCT_HOME>/bin/yajsw/ directory of many WSO2 products. Following is the minimal wrapper.conf configuration for running a WSO2 product as a Windows service. Open your wrapper.conf file, set its properties as follows, and save it in <YAJSW_HOME>/conf/ directory.


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.


Manual Configurations

Add the following class path to the wrapper.conf file manually to avoid errors in the WSO2 API Manager Management Console: = ${carbon_home}\\repository\\components\\plugins\\commons-lang_2.6.0.wso2v1.jar 

Minimal 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 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 which is for example wso2am-2.1.0 here.

Running the product in console mode

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

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

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


    For example:

If the configurations are set properly for YAJSW, you will see console output similar to the following and can now access the WSO2 management console from your web browser via https://localhost:9443/carbon.

Working with the WSO2CARBON service

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


The console will display a message confirming that the WSO2CARBON service was installed.

To start the service, execute the following command in the same console window:


The console will display a message confirming that the WSO2CARBON service was started.

To stop the service, execute the following command in the same console window:


The console will display a message confirming that the WSO2CARBON service has stopped.

To uninstall the service, execute the following command in the same console window:


The console will display a message confirming that the WSO2CARBON service was removed.