Sample 704: Invoke Secured Services with Scheduled Message Forwarding Processor

<!-- Invoke Secured Services with Scheduled Message Forwarding Processor --> <definitions xmlns="http://ws.apache.org/ns/synapse"> <localEntry key="sec_policy" src="file:repository/conf/sample/resources/policy/policy_3.xml"/> <endpoint name="SecuredStockQuoteServiceEp"> <address uri="http://localhost:9000/services/SecureStockQuoteService"> <suspendOnFailure> <errorCodes>-1</errorCodes> <progressionFactor>1.0</progressionFactor> </suspendOnFailure> <enableSec policy="sec_policy"/> </address> </endpoint> <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"> <in> <log level="full"/> <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/> <property name="OUT_ONLY" value="true"/> <property name="target.endpoint" value="SecuredStockQuoteServiceEp"/> <store messageStore="MyStore"/> </in> <description>The main sequence for the message mediation</description> </sequence> <messageStore name="MyStore"/> <messageProcessor class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor" name="ScheduledProcessor" messageStore="MyStore"> <parameter name="interval">10000</parameter> </messageProcessor> </definitions>

Objective

Invoke Secured Services with Scheduled Message Forwarding Processor

Pre-requisites

  • Download and install the Java Cryptography Extension (JCE) unlimited strength policy files for your JDK
  • Start Synapse using the configuration numbered 704 (repository/conf/sample/synapse_sample_704.xml)
    Unix/Linux: sh synapse.sh -sample 704
    Windows: synapse.bat -sample 704

Executing the Client

Execute the sample client a few times with the following command. Note that we still haven't started the sample Axis2 server.

ant stockquote -Daddurl=http://localhost:8280/ -Dmode=placeorder

Deploy the SecureStockQuoteService in the sample Axis2 server and start Axis2.

When you start the service you will see messages getting delivered to the service, even though the service was actually down when we invoked the sample client.

Here in the 'main' sequence, store mediator will store the placeOrder request message in the 'MyStore' message store. Message processor will send the message to the secured backend service using the defined endpoint. Endpoint is configured to use WS-Security. Message processor will remove the message from the store only if the message is delivered successfully.

Back to Catalog