This documentation is for WSO2 Enterprise Integrator version 6.1.1 . View documentation for the latest release in the 6.x.x family and the latest release in the 7.x.x family.

All docs This doc

Versions Compared

Key

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

...

Info
titleNote

You can configure the mediator using XML. Click switch to source view in the Mediator window.

Examples

Following examples demonstrate the usage of the Callout mediator.

Example 1 - Performing a direct service invocation

In this example, the Callout Mediator does the direct service invocation to the StockQuoteService using the client request, gets the response, and sets the response as the first child of the SOAP message body. You can then use the Send Mediator to send the message back to the client.

Code Block
XML
XML
<callout serviceURL="http://localhost:9000/services/SimpleStockQuoteService"
         action="urn:getQuote">
    <source xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
            xpath="s11:Body/child::*[fn:position()=1] | s12:Body/child::*[fn:position()=1]"/>
    <target xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
            xpath="s11:Body/child::*[fn:position()=1] | s12:Body/child::*[fn:position()=1]"/>
</callout>

...

Example 2 - Setting an HTTP method when invoking a REST service

The below example uses a Callout mediator to set a HTTP method when invoking a REST service.

Info

For this, you need to define the following property: <property name="HTTP_METHOD" expression="$axis2:HTTP_METHOD" scope="axis2-client"/>

Code Block
XML
XML
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="CalloutProxy"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <property name="enableREST"
                   scope="axis2-client"
                   type="BOOLEAN"
                   value="true"/>
         <property expression="$axis2:HTTP_METHOD"
                   name="HTTP_METHOD"
                   scope="axis2-client"/>
         <callout initAxis2ClientOptions="false"
                  serviceURL="http://localhost:8280/callout/CalloutRESTApi">
            <source type="envelope"/>
            <target key="response"/>
         </callout>
         <log level="custom">
            <property expression="$ctx:response" name="MESSAGE###########################3"/>
         </log>
         <property expression="$ctx:response" name="res" type="OM"/>
         <property action="remove" name="NO_ENTITY_BODY" scope="axis2"/>
         <property name="RESPONSE" value="true"/>
         <property name="messageType" scope="axis2" value="application/xml"/>
         <header action="remove" name="To"/>
         <payloadFactory media-type="xml">
            <format>
               <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
                  <soapenv:Header/>
                  <soapenv:Body>$1
                  </soapenv:Body>
               </soapenv:Envelope>
            </format>
            <args>
               <arg evaluator="xml" expression="$ctx:res"/>
            </args>
         </payloadFactory>
         <send/>
      </inSequence>
   </target>
   <description/>
</proxy>


Samples

  Sample 430: Callout Mediator for Synchronous Service Invocation .