...
This example demonstrates WSO2 ESB implementing the Splitter EIP by processing a list of repeating elements, each of which will be processed individually. The client sends multiple requests in a single message. Using the Iterate Mediator mediator of the ESB, each request will be processed individually and transmitted to a sample Axis2 server.
...
Before digging into implementation details, let's take a look at the relationship between the example scenario and the Splitter EIP by comparing their core components.
Splitter EIP (Figure 1: Splitter EIPFigure 2: ) | Splitter Example Scenario (Figure 2) |
---|---|
New Order Request | Stock Quote Request |
Splitter | Iterate Mediator |
Order Item Request | Endpoint |
Environment setup
- Download an and install the WSO2 ESB from http://wso2.com/products/enterprise-service-bus. For a list of prerequisites and step-by-step installation instructions, refer to Getting Started in the WSO2 ESB documentation.
- Start a Sample Axis2 server instance. For instructions, refer to the section ESB Samples Setup - Starting Sample Back-End Services in the WSO2 ESB Documentationdocumentation.
ESB configuration
Start the ESB server and log into its management console UI (https:
//localhost:9443/carbon
). In the management console, navigate to Main Menu, click Service Bus and then Source View. Next, copy and paste the following configuration, which helps you explore the example scenario, to the source view.
Anchor | ||||
---|---|---|---|---|
|
...
Send the following request to the ESB server using a tool SOAP client like SOAP UI SoapUI.
Code Block | ||
---|---|---|
| ||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.samples" xmlns:xsd="http://services.samples/xsd"> <soapenv:Header/> <soapenv:Body> <ser:getQuote> <ser:request> <xsd:symbol>IBM</xsd:symbol> </ser:request> <ser:request> <xsd:symbol>WSO2</xsd:symbol> </ser:request> <ser:request> <xsd:symbol>IBM</xsd:symbol> </ser:request> </ser:getQuote> </soapenv:Body> </soapenv:Envelope> |
Note that the three requests will appear as sent in the Axis2 server log.
How the
...
implementation works
Let's investigate the elements of the ESB configuration in detail. The line numbers below are mapped with the ESB configuration illustrated in step 3 shown above.
- iterate [line 7 in ESB config] - The Iterate mediator takes each child element of the element specified in its xPath XPath expression , and applies the sequence flow inside the iterator mediator. In this example, it takes each
getQuote
request specified in the incoming request to the ESB , and forwards this request to the target endpoint.