Objective: Simple message transformation - Rule mediator for message transformation.
Code Block | ||
---|---|---|
| ||
<!-- Simple rule based transformation (changing message ) --> <definitions xmlns="http://ws.apache.org/ns/synapse"> <sequence name="main"> <in> <rule xmlns="http://wso2.org/carbon/rules"> <source>soapBody</source> <target action="replace" xmlns:m0="http://services.samples" resultXpath="//m0:symbol" xpath="//m0:getQuote/m0:request/m0:symbol">soapBody</target> <ruleSet> <properties/> <rule resourceType="regular" sourceType="inline"> <![CDATA[ package SimpleRoutingRules; rule InvokeIBM when symbol: String() eval( symbol.equals("MSFT") || symbol.equals("SUN") ) then update(drools.getWorkingMemory().getFactHandle(symbol),"IBM"); end ]]> </rule> </ruleSet> <input namespace="http://services.samples" wrapperElementName="getQuote"> <fact xmlns:m0="http://services.samples" elementName="symbol" namespace="http://services.samples" type="java.lang.String" xpath="//m0:getQuote/m0:request/m0:symbol/child::text()"/> </input> <output namespace="http://services.samples" wrapperElementName="getQuote"> <fact elementName="symbol" namespace="http://services.samples" type="java.lang.String"/> </output> </rule> <send> <endpoint> <address uri="http://localhost:9000/services/SimpleStockQuoteService"/> </endpoint> </send> </in> <out> <send/> </out> </sequence> </definitions> |
Prerequisites:
Run the client as
Code Block |
---|
ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/ -Dsymbol=MSFT |
Or as
Code Block |
---|
ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/ -Dsymbol=SUN |
Then check the axis2server log or console
Code Block |
---|
Wed July 04 16:33:05 IST 2012 samples.services.SimpleStockQuoteService :: Generating quote for : IBM |