This documentation is for WSO2 ESB version 4.5.1. View documentation for the latest release.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Introduction

This sample demonstrates how a message can be passed through the WSO2 ESB and logged before it is delivered to its receiver. This is a basic, introductory usecase of WSO2 ESB. In this sample, we will deploy a sample client and a sample back-end service and transfer a message to the back-end service from the client through the WSO2 ESB.

Prerequisites

Refer to Prerequisites section in ESB Samples Setup page.

Building the Sample

To build and run samples, the ESB should be started with a sample configuration by executing wso2esb-samples.bat (for Windows) or wso2esb-samples.sh (for Linux) script found in <ESB_HOME>/bin directory. The sample configurations for ESB can be found in <ESB_HOME>/repository/samples directory.

You can switch from the default INFO log messages to DEBUG log messages by changing the line 'log4j.category.org.apache.synapse=INFO' to 'log4j.category.org.apache.synapse=DEBUG' in the <ESB_HOME>/repository/conf/log4j.properties file.

Starting ESB with Sample Configuration

1. Since this is sample 0, execute the following command to start the Synapse configuration numbered 0. It will start an instance of the ESB in the configuration used for this sample.

On text Linux console:

wso2esb-samples.sh -sn 0

On Windows command prompt:

wso2esb-samples.bat -sn 0

2. A message should appear on the command or Linux console stating the server started successfully.

Deploying the Back-End Service

 

Executing the Sample

 

<definitions xmlns="http://ws.apache.org/ns/synapse">
   <sequence name="main">
      <in>
         <!-- log all attributes of messages passing through -->
         <log level="full"/>
         <!-- Send the message to implicit destination -->
         <send/>
      </in>
      <out>
         <!-- log all attributes of messages passing through -->
         <log level="full"/>
         <!-- send the message back to the client -->
         <send/>
      </out>
   </sequence>
</definitions>

 

The Stock quote client can operate in the following modes for this example:

Smart Client mode
ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/
Using ESB as a HTTP Proxy
ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dprxurl=http://localhost:8280/
Gateway Mode / Dumb Client

Refer to Sample 1 Simple Content-Based Routing (CBR) of Messages.

Execute the Smart Client

By tracing the execution of ESB with the log output level set to DEBUG, you will see the client request arriving at ESB with a WS-Addressing To set to EPR http://localhost:9000/services/SimpleStockQuoteService.The ESB engine logs the message at the "full" log level (all the message headers and the body) then sends the message to its implicit To address which is http://localhost:9000/services/SimpleStockQuoteService.You will see a message in the Axis2 server console confirming that the message got routed to the sample server and the sample service hosted at the sample server generating a stock quote for the requested symbol.

Sat Nov 18 21:01:23 IST 2006 SimpleStockQuoteService :: Generating quote for : IBM

The response message generated by the service is again received by ESB, and flows through the same mediation rules, which logs the response message and then sends it back to the client. On the client console you should see an output similar to the following based on the message received by the client.

Standard :: Stock price = $95.26454380258552
Execute the Proxy Client

You will see exactly the same behavior as per the previous example when you run this scenario. However, this time the difference is at the client, as it sends the message to the WS-Addressing To address http://localhost:9000/services/SimpleStockQuoteService, but the transport specifies ESB as the HTTP Proxy.

  • No labels