Sample 62: Routing message to dynamic recipients
<definitions xmlns="http://ws.apache.org/ns/synapse">
<sequence name="errorHandler">
<makefault response="true">
<code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver" />
<reason value="COULDN'T SEND THE MESSAGE TO THE SERVER." />
</makefault>
<send />
</sequence>
<sequence name="fault">
<log level="full">
<property name="MESSAGE" value="Executing default "fault" sequence" />
<property name="ERROR_CODE" expression="get-property('ERROR_CODE')" />
<property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')" />
</log>
<drop />
</sequence>
<sequence name="main" onError="errorHandler">
<in>
<property name="EP_LIST" value="http://localhost:9001/services/SimpleStockQuoteService,http://localhost:9002/services/SimpleStockQuoteService,http://localhost:9003/services/SimpleStockQuoteService"/>
<send>
<endpoint>
<recipientlist>
<endpoints value="{get-property('EP_LIST')}" max-cache="20" />
</recipientlist>
</endpoint>
</send>
<drop/>
</in>
<out>
<!--Aggregate responses-->
<aggregate>
<onComplete xmlns:m0="http://services.samples"
expression="//m0:getQuoteResponse">
<log level="full"/>
<send/>
</onComplete>
</aggregate>
</out>
</sequence>
</definitions>
Objective
Objective: Routing message to dynamic recipients
Pre-requisites
- Start ESB with sample configuration 62. (i.e. wso2esb-samples -sn 62)
- Start three instances of the sample Axis2 server on HTTP ports 9001, 9002 and 9003 and give unique names to each server. For instructions on starting the Axis2 server, see Starting the Axis2 server
Executing the Client
Invoke the sample client as follows
ant stockquote -Dtrpurl=http://localhost:8280/
Back to Catalog