Sample 302: Message Injector Task to invoke a Proxy service
<definitions xmlns="http://ws.apache.org/ns/synapse">
<task class="org.apache.synapse.startup.tasks.MessageInjector" name="InjectToProxyTask">
<property name="soapAction" value="urn:getQuote"/>
<property name="format" value="soap11"/>
<property name="injectTo" value="proxy"/>
<property name="proxyName" value="SampleProxy"/>
<property name="message">
<m0:getQuote xmlns:m0="http://services.samples">
<m0:request>
<m0:symbol>IBM</m0:symbol>
</m0:request>
</m0:getQuote>
</property>
<trigger interval="5"/>
</task>
<proxy name="SampleProxy" transports="http">
<target>
<inSequence>
<log level="custom">
<property name="MSG" value="SampleProxy invoked"/>
</log>
<send>
<endpoint>
<address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<log level="custom">
<property xmlns:ns="http://services.samples" name="Stock_Quote_on"
expression="//ns:return/ns:lastTradeTimestamp/child::text()"/>
<property xmlns:ns="http://services.samples" name="For_the_organization"
expression="//ns:return/ns:name/child::text()"/>
<property xmlns:ns="http://services.samples" name="Last_Value"
expression="//ns:return/ns:last/child::text()"/>
</log>
<drop/>
</outSequence>
</target>
</proxy>
</definitions>
Objective
Demonstrate how to schedule tasks to invoke a Proxy service periodically using
the MessageInjector task implementation
Executing the Client
The above configuration adds a scheduled task, and a proxy service to the Synapse
runtime. The task is configured to run every 5 seconds (note the 'interval'
attribute on the 'trigger' element).
In this sample, the proxy service "SampleProxy" will be invoked by the task and
then from the proxy service, the injected messages will be sent to the sample
Axis2 server, which will send back a response to Synapse. So every 5 seconds you
will notice that Axis2 is generating a quote and Synapse is receiving the stock
quote response. You will also see the "SampleProxy invoked" message getting
logged on the console.
Back to Catalog