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

Versions Compared


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


  1. Start WSO2 API Manager Server which includes the API Publisher Component and create an API.
  2. Go to the implement stage of the API and replace Host and Port of the API endpoint with {} and {uri.var.port} respectively as shown below.
  3. Save and Publish API. 


    Refer Create and Publish an API for more information on creating and Publishing the API.

  4. Create a java class extending the AbstractMediator class of org.synapse.core as below and create the jar file out of it.

    Code Block
    import org.apache.synapse.MessageContext;
    import org.apache.synapse.mediators.AbstractMediator;
    public class EnvironmentResolver extends AbstractMediator {
        public boolean mediate(MessageContext messageContext) {
            String host = System.getProperty("");
            String port = System.getProperty("environment.port");
            messageContext.setProperty("", host);
            messageContext.setProperty("uri.var.port", port);
            return true;
        public boolean isContentAware(){
            return false;

    We use Java system properties which will be set at the server start-up process of each Gateway to resolve the variables which are defined as properties in this sequence.

  5. Add the created jar into <AM_HOME>/repository/components/lib folder of each Gateway. You can download a sample jar file created from herefrom here.

  6. Add following sequence to <AM_HOME>/repository/deployment/server/synapse-configs/sequences folder of each Gateway.

    Code Block
    <sequence xmlns="" name="WSO2AM--Ext--In">
            <class name="org.wso2.carbon.env.EnvironmentResolver"/>

     org.wso2.carbon.env.EnvironmentResolver is the fully qualified name of the class that contains the code responsible for converting system variables into properties. It is a special class we created which needs to be extended from the org.apache.synapse.mediators.AbstractMediator class and requires overriding the 'mediate' function. 

  7. Execute the following command when starting up each Gateway to set the system variables at the server start up from within the <APIM_HOME>/bin directory by replacing the following values.

    host IP of the Gatewayport where the Gateway is running in the dedicated machine or VM
    Code Block
    ./<ip_of_backend_environment> -Denvironment.port=<port_of_backend_environment>

    Now the Gateways have started with the dedicated backend host/port combinations.

  8. Invoke the API.