Objective: POX to SOAP conversion
Following is the XML configuration for the sample:
<definitions xmlns="http://ws.apache.org/ns/synapse"> <sequence name="main"> <in> <!-- filtering of messages with XPath and regex matches --> <filter source="get-property('To')" regex=".*/StockQuote.*"> <header name="Action" value="urn:getQuote"/> <send> <endpoint> <address uri="http://localhost:9000/services/SimpleStockQuoteService" format="soap11"/> </endpoint> </send> </filter> </in> <out> <send/> </out> </sequence> </definitions>
Prerequisites:
- Navigate to
<ESB_HOME>/repository/samples
, opensynapse_sample_50.xml
for editing, and replace the contents with the configuration above. (This step is required because of a bug in the sample that shipped with this release.) Save the file and close it. - Start the Synapse configuration numbered 50:
wso2esb-samples.sh -sn 50
- Start the Axis2 server and deploy the
SimpleStockQuoteService
if not already done.
Execute the 'ant stockquote' specifying that the request should be a REST request as follows:
ant stockquote -Dtrpurl=http://localhost:8280/services/StockQuote -Drest=true
This example shows an HTTP REST request (as shown below) being transformed into a SOAP request and forwarded to the stock quote service.
POST /services/StockQuote HTTP/1.1 Content-Type: application/xml; charset=UTF-8;action="urn:getQuote"; SOAPAction: urn:getQuote User-Agent: Axis2 Host: 127.0.0.1 Transfer-Encoding: chunked 75 <m0:getQuote xmlns:m0="http://services.samples/xsd"> <m0:request> <m0:symbol>IBM</m0:symbol> </m0:request> </m0:getQuote>0