Skip to main content
Skip table of contents

Java Call Out

Contents

The Java Call Out policy provides a way to inject custom Java modules as part of the message flow. The call out 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. 

Location of Jar File

The jar location must be added to the configuration of gateway servers. Navigate to FIORANO_HOME > esb > server > bin. Add the path (location) of the jar file in the server.conf file under the tag <java.classpath>.    

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.