Skip to main content
Skip table of contents

Java Call Out

The Java Call Out policy provides a way to inject custom Java modules as part of the message flow. The callout handler implements a Java interface onto which complete processing context is passed.

Configuration

The properties that have to be configured to use the policy are described below.


Figure 1: Java Call Out Policy Configuration attributes

Qualified Class Name

The fully qualified name of the class which implements the interface Call OutProcessor. 

Adding Jars

Jars can be added to the gateway server configuration in one of the following ways:

    1. Conf file: Go to the bin folder at FIORANO_HOME/esb/server, open the server.conf file and add the jar file path (location) under the tag <java.classpath>.
    2. jars folder: Go to FIORANO_HOME/runtimedata/repository/APIManagement and place the jars in the jars folder.

      Placing the files in the jars folder avoids the hassle of stopping/restarting the server.

Is Streaming Supported

This option can be checked if the class does not access or modify the payload and that it works only with parameters and context variables.

Accessing Processor Context

This method has the variable processor context whose methods are listed below. The methods can be used to access or modify the message.

Example

The following class demonstrates the use of Java call out. The class inspects the parameter ID and verifies whether or not the details corresponding to the ID are present in a local database. If present, the details are set as payload and a flag RETRIEVED_FROM_DB will be set so that the execution of other policies can be controlled by rules based on this flag. 

Sample Java Call Out Processor

JAVA
package com.fiorano.samples.callout;

import com.fiorano.api.policies.handlers.callout.java.CallOutProcessor;
import com.fiorano.api.policies.handlers.callout.java.ProcessorContext;

public class SampleCallOutProcessor implements CallOutProcessor {
    @Override
      public void process(ProcessorContext context) throws CallOutFailedException {
        List<String> id = context.getQueryParameter("ID");
        String paylod = retrieveFromDB(id);
        if(!paylod.isEmpty()){
            context.setContextVariable("RETRIEVE_FROM_DB",true);
            context.setPayload(paylod);
        } else{
           context.setContextVariable("RETRIEVE_FROM_DB",false);
        }
    }
    public String retrieveFromDB(List<String> id){
        String paylod = null;
        /**
         * This method will check in local database and retrieve the data corresponding to ID if present.
         */
        return paylod;
    }


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.