Sample 150: Introduction to Proxy Services
Introduction
This sample introduces the concept of proxy services in the ESB.
Prerequisites
For a list of prerequisites, see Prerequisites to Start the ESB Samples.
Building the sample
The XML configuration for this sample is as follows:
<definitions xmlns="http://ws.apache.org/ns/synapse"> <proxy name="StockQuoteProxy"> <target> <endpoint> <address uri="http://localhost:9000/services/SimpleStockQuoteService"/> </endpoint> <outSequence> <send/> </outSequence> </target> <publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/> </proxy> </definitions>
This configuration file synapse_sample_150.xml
is available in the <ESB_HOME>/repository/samples
directory.
To build the sample
Start the ESB with the sample 150 configuration. For instructions on starting a sample ESB configuration, see Starting the ESB with a sample configuration.
The operation log keeps running until the server starts, which usually takes several seconds. Wait until the server has fully booted up and displays a message similar to "WSO2 Carbon started in n seconds."
Start the Axis2 server. For instructions on starting the Axis2 server, see Starting the Axis2 server.
Deploy the back-end service SimpleStockQuoteService. For instructions on deploying sample back-end services, see Deploying sample back-end services.
Once ESB starts, you can view the WSDL generated for the Proxy Service defined in the configuration by navigating to the following URL:
http://localhost:8280/services/StockQuoteProxy?wsdl
This WSDL is based on the source WSDL supplied in the Proxy Service definition and is updated to reflect the Proxy Service EPR.
Executing the sample
The sample client used here is the Stock Quote Client, which can operate in several modes. For further details on this sample client and its operation modes, see Stock Quote Client.
To execute the sample client
Run the following command from the
<ESB_HOME>/samples/axis2Client
directory.ant stockquote -Daddurl=http://localhost:8280/services/StockQuoteProxy
Analyzing the output
When you execute the stock quote client to invoke the proxy service, you will see that the request received is forwarded to the sample service hosted on Axis2. The inSequence
or endpoint
or both of these decide how the message would be handled after the Proxy Service receives the message.The outSequence
defines how the response is handled before it is sent back to the client.
By default, a Proxy Service is exposed over all transports configured for the ESB, unless a transport is specifically mentioned via the transports
attribute.