synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ru...@apache.org
Subject svn commit: r615849 [2/11] - in /webservices/synapse/trunk/java/src/site: ./ resources/ resources/css/ resources/download/ xdoc/ xdoc/1_0/ xdoc/1_1/ xdoc/download/ xdoc/download/1.0/ xdoc/download/1.1.1/ xdoc/download/1.1/
Date Mon, 28 Jan 2008 11:05:55 GMT
Added: webservices/synapse/trunk/java/src/site/xdoc/1_0/quickstart.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/src/site/xdoc/1_0/quickstart.xml?rev=615849&view=auto
==============================================================================
--- webservices/synapse/trunk/java/src/site/xdoc/1_0/quickstart.xml (added)
+++ webservices/synapse/trunk/java/src/site/xdoc/1_0/quickstart.xml Mon Jan 28 03:05:41 2008
@@ -0,0 +1,553 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE html
+   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <title>
+      Apache Synapse - Quick Start Guide
+    </title>
+    <meta name="generator" content="Amaya 9.54, see http://www.w3.org/Amaya/"/>
+    <style type="text/css" xml:space="preserve">
+    .command {
+        border: 1px dashed #3c78b5;
+        text-align: left;
+        background-color: #f0f0f0;
+        padding: 3px;
+        font-size: 11px;
+        font-family: Courier;
+        margin: 10px;
+        line-height: 13px;
+    }
+    .consoleOutput {
+        border: 1px dashed #3c78b5;
+        font-size: 11px;
+        font-family: Courier;
+        margin: 10px;
+        line-height: 13px;
+        background-color: #f0f0f0;
+        border-bottom: 1px dashed #3c78b5;
+        padding: 3px;
+        border-style: solid;
+    }
+    .info {
+        border-style: solid;
+        border-width: 1px;
+        border-color: #090;
+        background-color: #dfd;
+        text-align:left;
+        margin-top: 5px;
+        margin-bottom: 5px;
+    }
+    li {
+        font-family: Verdana, arial, sans-serif;
+        font-size: 11px;
+        line-height: 16px;
+        color: #000000;
+        font-weight: normal;
+    }
+    p {
+        font-family: Verdana, arial, sans-serif;
+        font-size: 11px;
+        line-height: 16px;
+        color: #000000;
+        font-weight: normal;
+    }
+    pre {
+        padding: 0px;
+        margin-top: 5px;
+        margin-left: 15px;
+        margin-bottom: 5px;
+        margin-right: 5px;
+        text-align: left;
+        background-color: #f0f0f0;
+        padding: 3px;
+        border: 1px dashed #3c78b5;
+        font-size: 11px;
+        font-family: Courier;
+        margin: 10px;
+        line-height: 13px;
+    }
+    h1 {
+        font-size: 24px;
+        line-height: normal;
+        font-weight: bold;
+        background-color: #f0f0f0;
+        color: #003366;
+        border-bottom: 1px solid #3c78b5;
+        padding: 2px;
+        margin: 36px 0px 4px 0px;
+    }
+    h2 {
+        font-size: 18px;
+        line-height: normal;
+        font-weight: bold;
+        background-color: #f0f0f0;
+        border-bottom: 1px solid #3c78b5;
+        padding: 2px;
+        margin: 27px 0px 4px 0px;
+    }
+    h3 {
+        font-size: 14px;
+        line-height: normal;
+        font-weight: bold;
+        background-color: #f0f0f0;
+        padding: 2px;
+        margin: 21px 0px 4px 0px;
+    }
+    h4 {
+        font-size: 12px;
+        line-height: normal;
+        font-weight: bold;
+        background-color: #f0f0f0;
+        padding: 2px;
+        margin: 18px 0px 4px 0px;
+    }</style>
+  </head>
+  <body>
+    <h1>
+      Quick start guide
+    </h1>
+    <p>
+      This guide will demonstrate two sample applications covering the basic and
+      the most common usage scenarios of Synapse; which is Message mediation and
+      Service mediation (i.e. using Proxy services). You will be guided through
+      a step by step approach to get a feeling about Synapse from the absolute
+      beginning.
+    </p>
+    <h3>
+      Pre-requisites
+    </h3>
+    <p>
+      You should have following pre-requisites installed on your system to
+      follow through this guide
+    </p>
+    <ul>
+      <li>
+        A Java 2 SE - JDK or JRE of version 1.4.2 or higher
+      </li>
+      <li>
+        Apache Ant http://ant.apache.org
+      </li>
+    </ul>
+    <p>
+      Note: To use the bundled https transport, you will need a Java 2 SE
+      runtime of version 1.5 or later. If you are using a J2SE below 1.5 and
+      does not require the https transport, you may comment out the following
+      section from your repository/conf/axis2.xml and
+      samples/axis2Server/repository/conf/axis2.xml configuration files.
+    </p>
+<pre xml:space="preserve">...
+   &lt;transportReceiver name="https"...<br/>      ...<br/>   &lt;/transportReceiver&gt;
+   ...
+   &lt;transportSender name="https"...<br/>      ...<br/>   &lt;/transportSender&gt;
+....</pre>
+    <p/>
+    <h2>
+      Message Mediation
+    </h2>
+    <p>
+      In this example Synapse will be used to simply log all the messages
+      passing through it. Although this simple scenario only performs logging,
+      it demonstrates the basics of message mediation, where the logging
+      functionality could be replaced with any combination of advanced
+      mediations such as transformations, content based routing as well as
+      bridging between different communication protocols etc. So, let's start
+      with the basics.
+    </p>
+    <h3>
+      Download
+    </h3>
+    <p>
+      Our first task is to download Synapse. Open a web browser and access the
+      following URL: http://ws.apache.org/synapse/download.cgi. You will then
+      see the list of available releases. Click on the 1.0 version, and you will
+      be directed to the Synapse 1.0 release download page. Now download the
+      'Standard binary distribution' ZIP or tar.gz archive compatible with your
+      operating system.
+    </p>
+    <h3>
+      Installation
+    </h3>
+    <p>
+      Synapse can be installed just by extracting the downloaded binary
+      archive.. A directory named synapse-1.0 will be created in the selected
+      parent directory, containing all the files required for Synapse. We will
+      refer to this directory as &lt;synapse-home&gt; from now on.
+    </p>
+    <h3>
+      Running the sample
+    </h3>
+    <p>
+      Synapse ships with a set of sample clients and services to demonstrate
+      some of its core capabilities. Hence, you will need to run three programs
+      to get an idea of message mediation. The destination server that hosts the
+      ultimate service to be invoked to service the client, the client itself,
+      and Synapse, which acts as the intermediary to bridge between the client
+      and the server.
+    </p>
+    <p/>
+    <h4>
+      Starting the sample Axis2 server
+    </h4>
+    <p>
+      In this case we are using a standalone Axis2 web services engine as the
+      server. You don't have to get it now, it is already bundled with your
+      Synapse distribution. But we have to deploy a sample service for which
+      client can send requests. Go to &lt;synapse-home&gt;/samples/axis2Server/src/SimpleStockQuoteService
+      directory. Run "ant" to build and deploy this service to the sample Axis2
+      server.
+    </p>
+    <p/>
+<pre xml:space="preserve">user@host:/opt/synapse/samples/axis2Server$ cd src/SimpleStockQuoteService/
+user@host:/opt/synapse/samples/axis2Server/src/SimpleStockQuoteService$ ant
+Buildfile: build.xml
+
+clean:
+   [delete] Deleting directory /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/src/SimpleStockQuoteService/temp
+
+init:
+    [mkdir] Created dir: /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/src/SimpleStockQuoteService/temp
+    [mkdir] Created dir: /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/src/SimpleStockQuoteService/temp/classes
+
+compile-all:
+    [javac] Compiling 9 source files to /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/src/SimpleStockQuoteService/temp/classes
+
+build-service:
+    [mkdir] Created dir: /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/src/SimpleStockQuoteService/temp/SimpleStockQuote
+    [mkdir] Created dir: /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/src/SimpleStockQuoteService/temp/SimpleStockQuote/META-INF
+     [copy] Copying 1 file to /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/src/SimpleStockQuoteService/temp/SimpleStockQuote/META-INF
+     [copy] Copying 1 file to /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/src/SimpleStockQuoteService/temp/SimpleStockQuote/META-INF
+     [copy] Copying 9 files to /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/src/SimpleStockQuoteService/temp/SimpleStockQuote
+      [jar] Building jar: /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/repository/services/SimpleStockQuoteService.aar
+
+BUILD SUCCESSFUL
+Total time: 1 second</pre>
+    <p>
+      Now go to &lt;synapse-home&gt;/samples/axis2Server directory and start the
+      server using the following command. This will start Axis2 server on port
+      9000 (http).
+    </p>
+    <div class="command">
+      <p>
+        Linux / Unix: . axis2server.sh
+      </p>
+      <p>
+        Windows: axis2server.bat
+      </p>
+    </div>
+    <p>
+      You will see the following messages on the console.
+    </p>
+<pre xml:space="preserve">user@host:/opt/synapse/samples/axis2Server$ ./axis2server.sh
+ Using JAVA_HOME:   /opt/jdk1.5_06
+ Using AXIS2 Repository :   /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/repository
+ Using AXIS2 Configuration :   /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/repository/conf/axis2.xml
+[SimpleAxisServer] Using the Axis2 Repository : /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/repository
+[SimpleAxisServer] Using the Axis2 Configuration File : /home/asankha/java/synapse-1.0-RC1-SNAPSHOT/samples/axis2Server/repository/conf/axis2.xml
+[main] INFO  HttpCoreNIOSender - HTTPS Sender starting
+[main] INFO  HttpCoreNIOSender - HTTP Sender starting
+[main] INFO  HttpCoreNIOListener - HTTPS Listener starting on port : 9002
+[main] INFO  HttpCoreNIOListener - HTTP Listener starting on port : 9000 </pre>
+    <p/>
+    <h4>
+      Starting Synapse
+    </h4>
+    <p>
+      Now it's time to start Synapse. In this scenario we are starting Synapse
+      using the sample configuration found in synapse_sample_0.xml (i.e. in
+      repository/conf/sample) and listed below. It is configured to log and pass
+      through, all the messages.
+    </p>
+<pre xml:space="preserve">&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;<br/>
   &lt;log level="full"/&gt; <br/>    &lt;send/&gt;
+&lt;/definitions&gt; </pre>
+    <p/>
+    <p>
+      Go to &lt;synapse-home&gt;/bin directory and type the command given below.
+      Synapse will be started on port 8080 (http) and 8443 (https - under JDK
+      1.5)
+    </p>
+    <div class="command">
+      <p>
+        Linux / Unix: . synapse.sh -sample 0
+      </p>
+      <p>
+        Windows: synapse.bat -sample 0
+      </p>
+    </div>
+    <p/>
+    <p>
+      Following messages will be displayed on the console to indicate the
+      successfull startup of Synapse.
+    </p>
+<pre xml:space="preserve">user@host:/opt/synapse/bin$ ./synapse.sh -sample 0
+Starting Synapse/Java ...
+Using SYNAPSE_HOME:    /opt/synapse
+Using JAVA_HOME:       /opt/jdk1.5_06
+Using SYNAPSE_XML:     -Dsynapse.xml=/opt/synapse/repository/conf/sample/synapse_sample_0.xml
+[SynapseServer] Using the Axis2 Repository /opt/synapse/repository
+[main] INFO  SynapseModule - Initializing the Synapse configuration ...
+...
+[main] INFO  SynapseConfigurationBuilder - Loaded Synapse configuration from : /opt/synapse/repository/conf/sample/synapse_sample_0.xml
+[main] INFO  SynapseModule - Deploying the Synapse service..
+[main] INFO  SynapseModule - Deploying Proxy services...
+[main] INFO  SynapseModule - Synapse initialized successfully...!
+[main] ERROR SandeshaModule - Could not load module policies. Using default values.
+[main] INFO  HttpCoreNIOSender - HTTPS Sender starting
+[main] INFO  HttpCoreNIOSender - HTTP Sender starting
+[main] INFO  HttpCoreNIOListener - HTTPS Listener starting on port : 8443
+[SynapseServer] Starting transport https on port 8443
+[main] INFO  HttpCoreNIOListener - HTTP Listener starting on port : 8080
+[SynapseServer] Starting transport http on port 8080
+[SynapseServer] Ready</pre>
+    <p/>
+    <h4>
+      Run the client
+    </h4>
+    <p>
+      Now the final step, running the client. Go to &lt;synapse-home&gt;/samples/axis2Client
+      directory and type the following command
+    </p>
+<pre xml:space="preserve">user@host:/opt/synapse/samples/axis2Client$ ant stockquote
-Daddurl=http://localhost:9000/soap/SimpleStockQuoteService -Dtrpurl=http://localhost:8080
-Dmode=quote -Dsymbol=IBM
+Buildfile: build.xml
+
+init:
+
+compile:
+
+stockquote:
+     [java] Standard :: Stock price = $175.56196739870038
+
+BUILD SUCCESSFUL</pre>
+    <p/>
+    <p>
+      This sends a request for a stock quote for the symbol IBM and sets the
+      transport URL to Synapse (http://localhost:8080) and the WS-Addressing EPR
+      set that of the actual server
+      (http://localhost:9000/soap/SimpleStockQuoteService). The actual wire
+      level http message sent by the client is as follows, and is sent over port
+      8080 to the Synapse instance on localhost.
+    </p>
+<pre xml:space="preserve">POST / HTTP/1.1
+Content-Type: text/xml; charset=UTF-8
+SOAPAction: "urn:getQuote"
+User-Agent: Axis2
+Host: 127.0.0.1
+Transfer-Encoding: chunked
+
+218
+&lt;?xml version='1.0' encoding='UTF-8'?&gt;
+   &lt;soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;
+      &lt;soapenv:Header&gt;
+         &lt;wsa:To&gt;http://localhost:9000/soap/SimpleStockQuoteService&lt;/wsa:To&gt;
+         &lt;wsa:MessageID&gt;urn:uuid:D538B21E30B32BB8291177589283717&lt;/wsa:MessageID&gt;
+         &lt;wsa:Action&gt;urn:getQuote&lt;/wsa:Action&gt;
+      &lt;/soapenv:Header&gt;
+      &lt;soapenv:Body&gt;
+         &lt;m0:getQuote xmlns:m0="http://services.samples/xsd"&gt;
+            &lt;m0:request&gt;
+               &lt;m0:symbol&gt;IBM&lt;/m0:symbol&gt;
+            &lt;/m0:request&gt;
+         &lt;/m0:getQuote&gt;
+      &lt;/soapenv:Body&gt;
+   &lt;/soapenv:Envelope&gt;0</pre>
+    <p/>
+    <p>
+      Now take a look at the console running Synapse. You will see that all the
+      details of the mediation are logged along with all the SOAP messages
+      passed through Synapse - as Synapse is running on debug mode by default.
+    </p>
+<pre xml:space="preserve">[I/O reactor worker thread 5] INFO  PipeImpl - Using native
OS Pipes for event-driven to stream IO bridging
+[HttpServerWorker-1] DEBUG SynapseMessageReceiver - Synapse received a new message for message
mediation...
+[HttpServerWorker-1] DEBUG SynapseMessageReceiver - Received To: http://localhost:9000/soap/SimpleStockQuoteService
+[HttpServerWorker-1] DEBUG SynapseMessageReceiver - SOAPAction: urn:getQuote
+[HttpServerWorker-1] DEBUG SynapseMessageReceiver - WSA-Action: urn:getQuote
+[HttpServerWorker-1] DEBUG SynapseMessageReceiver - Body :
+&lt;?xml version='1.0' encoding='utf-8'?&gt;<br/>&lt;soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;<br/>&lt;soapenv:Header&gt;<br/>&lt;wsa:To&gt;http://localhost:9000/soap/SimpleStockQuoteService&lt;/wsa:To&gt;<br/>&lt;wsa:MessageID&gt;urn:uuid:32748ED82860C9DBDE1177504004875&lt;/wsa:MessageID&gt;<br/>&lt;wsa:Action&gt;urn:getQuote&lt;/wsa:Action&gt;&lt;/soapenv:Header&gt;<br/>&lt;soapenv:Body&gt;&lt;m0:getQuote
xmlns:m0="http://services.samples/xsd"&gt;&lt;m0:request&gt;&lt;m0:symbol&gt;IBM&lt;/m0:symbol&gt;&lt;/m0:request&gt;<br/>&lt;/m0:getQuote&gt;&lt;/soapenv:Body&gt;&lt;/soapenv:Envelope&gt;
+[HttpServerWorker-1] DEBUG SequenceMediator - Sequence mediator &lt;main&gt; :: mediate()
+[HttpServerWorker-1] DEBUG AbstractListMediator - Implicit Sequence &lt;SequenceMediator&gt;
:: mediate()
+[HttpServerWorker-1] DEBUG LogMediator - Log mediator :: mediate()
+[HttpServerWorker-1] INFO  LogMediator - To : http://localhost:9000/soap/SimpleStockQuoteService,
<br/>MessageID : urn:uuid:32748ED82860C9DBDE1177504004875, Action : urn:getQuote, Envelope:
<br/>&lt;?xml version='1.0' encoding='utf-8'?&gt;<br/>&lt;soapenv:Envelope
xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;<br/>&lt;soapenv:Header&gt;<br/>&lt;wsa:To&gt;http://localhost:9000/soap/SimpleStockQuoteService&lt;/wsa:To&gt;<br/>&lt;wsa:MessageID&gt;urn:uuid:32748ED82860C9DBDE1177504004875&lt;/wsa:MessageID&gt;&lt;wsa:Action&gt;urn:getQuote&lt;/wsa:Action&gt;<br/>&lt;/soapenv:Header&gt;&lt;soapenv:Body&gt;&lt;m0:getQuote
xmlns:m0="http://services.samples/xsd"&gt;&lt;m0:request&gt;&lt;m0:symbol&gt;IBM&lt;/m0:symbol&gt;<br/>&lt;/m0:request&gt;&lt;/m0:getQuote&gt;&lt;/soapenv:Body&gt;&lt;/soapenv:Envelope&gt;
+[HttpServerWorker-1] DEBUG SendMediator - Send mediator :: mediate()
+[HttpServerWorker-1] DEBUG SendMediator - Sending message using implicit message properties..
+[HttpServerWorker-1] DEBUG SendMediator - Sending To: http://localhost:9000/soap/SimpleStockQuoteService
+[HttpServerWorker-1] DEBUG SendMediator - SOAPAction: urn:getQuote
+[HttpServerWorker-1] DEBUG SendMediator - Body :
+&lt;?xml version='1.0' encoding='utf-8'?&gt;&lt;soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing"
<br/>xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;&lt;soapenv:Header&gt;<br/>&lt;wsa:To&gt;http://localhost:9000/soap/SimpleStockQuoteService&lt;/wsa:To&gt;<br/>&lt;wsa:MessageID&gt;urn:uuid:32748ED82860C9DBDE1177504004875&lt;/wsa:MessageID&gt;&lt;wsa:Action&gt;urn:getQuote&lt;/wsa:Action&gt;&lt;/soapenv:Header&gt;<br/>&lt;soapenv:Body&gt;&lt;m0:getQuote
xmlns:m0="http://services.samples/xsd"&gt;&lt;m0:request&gt;&lt;m0:symbol&gt;IBM&lt;/m0:symbol&gt;&lt;/m0:request&gt;<br/>&lt;/m0:getQuote&gt;&lt;/soapenv:Body&gt;&lt;/soapenv:Envelope&gt;
+[HttpServerWorker-1] DEBUG Axis2FlexibleMEPClient - sending [add = false] [sec = false] [rm
= false] <br/>[ to Address: http://localhost:9000/soap/SimpleStockQuoteService]
+[HttpClientWorker-1] DEBUG SynapseCallbackReceiver - Synapse received an asynchronous response
message
+[HttpClientWorker-1] DEBUG SynapseCallbackReceiver - Received To: null
+[HttpClientWorker-1] DEBUG SynapseCallbackReceiver - SOAPAction: null
+[HttpClientWorker-1] DEBUG SynapseCallbackReceiver - WSA-Action: null
+[HttpClientWorker-1] DEBUG SynapseCallbackReceiver - Body :
+&lt;?xml version='1.0' encoding='utf-8'?&gt;&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;<br/>&lt;soapenv:Body&gt;&lt;soapenv:Envelope&gt;&lt;soapenv:Body&gt;&lt;ns:getQuoteResponse
xmlns:ns="http://services.samples/xsd"&gt;<br/>&lt;ns:return&gt;&lt;ns:change&gt;3.9759712191629117&lt;/ns:change&gt;&lt;ns:earnings&gt;-9.463240695957264&lt;/ns:earnings&gt;<br/>&lt;ns:high&gt;97.0893936590198&lt;/ns:high&gt;&lt;ns:last&gt;93.87052890651084&lt;/ns:last&gt;<br/>&lt;ns:lastTradeTimestamp&gt;Wed
Apr 25 18:26:46 LKT 2007&lt;/ns:lastTradeTimestamp&gt;&lt;ns:low&gt;96.4856592398509&lt;/ns:low&gt;<br/>&lt;ns:marketCap&gt;5.572519121414568E7&lt;/ns:marketCap&gt;&lt;ns:name&gt;IBM
Company&lt;/ns:name&gt;&lt;ns:open&gt;-92.43795414108462&lt;/ns:open&gt;<br/>&lt;ns:peRatio&gt;-18.381880013551893&lt;/ns:peRatio&gt;<br/>&lt;ns:percentageChange&gt;-4.5174961332793435&lt;/ns:percentageChange&gt;&lt;ns:prevClose&gt;-88.01271991962221&lt;/ns:prevClose&gt;<br/
 >&lt;ns:symbol&gt;IBM&lt;/ns:symbol&gt;&lt;ns:volume&gt;15381&lt;/ns:volume&gt;&lt;/ns:return&gt;&lt;/ns:getQuoteResponse&gt;&lt;/soapenv:Body&gt;<br/>&lt;/soapenv:Envelope&gt;&lt;/soapenv:Body&gt;&lt;/soapenv:Envelope&gt;
+[HttpClientWorker-1] DEBUG SequenceMediator - Sequence mediator &lt;main&gt; :: mediate()
+[HttpClientWorker-1] DEBUG AbstractListMediator - Implicit Sequence &lt;SequenceMediator&gt;
:: mediate()
+[HttpClientWorker-1] DEBUG LogMediator - Log mediator :: mediate()
+[HttpClientWorker-1] INFO  LogMediator - Envelope: &lt;?xml version='1.0' encoding='utf-8'?&gt;<br/>&lt;soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;&lt;soapenv:Body&gt;&lt;soapenv:Envelope&gt;&lt;soapenv:Body&gt;<br/>&lt;ns:getQuoteResponse
xmlns:ns="http://services.samples/xsd"&gt;&lt;ns:return&gt;&lt;ns:change&gt;3.9759712191629117&lt;/ns:change&gt;<br/>&lt;ns:earnings&gt;-9.463240695957264&lt;/ns:earnings&gt;&lt;ns:high&gt;97.0893936590198&lt;/ns:high&gt;&lt;ns:last&gt;93.87052890651084&lt;/ns:last&gt;<br/>&lt;ns:lastTradeTimestamp&gt;Wed
Apr 25 18:26:46 LKT 2007&lt;/ns:lastTradeTimestamp&gt;&lt;ns:low&gt;96.4856592398509&lt;/ns:low&gt;<br/>&lt;ns:marketCap&gt;5.572519121414568E7&lt;/ns:marketCap&gt;&lt;ns:name&gt;IBM
Company&lt;/ns:name&gt;&lt;ns:open&gt;-92.43795414108462&lt;/ns:open&gt;<br/>&lt;ns:peRatio&gt;-18.381880013551893&lt;/ns:peRatio&gt;<br/>&lt;ns:percentageChange&gt;-4.5174961332793435&lt;/ns:percentageChange&gt;&lt;ns:prevC
 lose&gt;-88.01271991962221&lt;/ns:prevClose&gt;<br/>&lt;ns:symbol&gt;IBM&lt;/ns:symbol&gt;&lt;ns:volume&gt;15381&lt;/ns:volume&gt;&lt;/ns:return&gt;&lt;/ns:getQuoteResponse&gt;&lt;/soapenv:Body&gt;&lt;/soapenv:Envelope&gt;<br/>&lt;/soapenv:Body&gt;&lt;/soapenv:Envelope&gt;
+[HttpClientWorker-1] DEBUG SendMediator - Send mediator :: mediate()
+[HttpClientWorker-1] DEBUG SendMediator - Sending message using implicit message properties..
+[HttpClientWorker-1] DEBUG SendMediator - Sending To: null
+[HttpClientWorker-1] DEBUG SendMediator - SOAPAction: null
+[HttpClientWorker-1] DEBUG SendMediator - Body :
+&lt;?xml version='1.0' encoding='utf-8'?&gt;&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;<br/>&lt;soapenv:Body&gt;&lt;soapenv:Envelope&gt;&lt;soapenv:Body&gt;&lt;ns:getQuoteResponse
xmlns:ns="http://services.samples/xsd"&gt;<br/>&lt;ns:return&gt;&lt;ns:change&gt;3.9759712191629117&lt;/ns:change&gt;&lt;ns:earnings&gt;-9.463240695957264&lt;/ns:earnings&gt;<br/>&lt;ns:high&gt;97.0893936590198&lt;/ns:high&gt;&lt;ns:last&gt;93.87052890651084&lt;/ns:last&gt;<br/>&lt;ns:lastTradeTimestamp&gt;Wed
Apr 25 18:26:46 LKT 2007&lt;/ns:lastTradeTimestamp&gt;&lt;ns:low&gt;96.4856592398509&lt;/ns:low&gt;<br/>&lt;ns:marketCap&gt;5.572519121414568E7&lt;/ns:marketCap&gt;&lt;ns:name&gt;IBM
Company&lt;/ns:name&gt;&lt;ns:open&gt;-92.43795414108462&lt;/ns:open&gt;<br/>&lt;ns:peRatio&gt;-18.381880013551893&lt;/ns:peRatio&gt;<br/>&lt;ns:percentageChange&gt;-4.5174961332793435&lt;/ns:percentageChange&gt;&lt;ns:prevClose&gt;-88.01271991962221&lt;/ns:prevClose&gt;<br/
 >&lt;ns:symbol&gt;IBM&lt;/ns:symbol&gt;&lt;ns:volume&gt;15381&lt;/ns:volume&gt;&lt;/ns:return&gt;&lt;/ns:getQuoteResponse&gt;&lt;/soapenv:Body&gt;<br/>&lt;/soapenv:Envelope&gt;&lt;/soapenv:Body&gt;&lt;/soapenv:Envelope&gt;</pre>
+    <p/>
+    <p>
+      You have successfully completed the first part of this guide. Now let's
+      look at the next scenario, proxy services.
+    </p>
+    <p/>
+    <h2>
+      Proxy Services
+    </h2>
+    <p>
+      As the name implies, a proxy service acts as a service hosted in Synapse,
+      and typically fronts an existing service endpoint. A proxy service can be
+      created and exposed on a different transport, schema, WSDL, or QoS (such
+      as WS-Security, WS-Reliable Messaging) aspect than the real service and
+      could mediate the messages before being delivered to the actual endpoint,
+      and the responses before they reach the client.
+    </p>
+    <p>
+      Clients can send requests for proxy services directly to Synapse, as the
+      client sees as if they are hosted on it, and for example can perform ?wsdl
+      and view the WSDL of the virtual proxy service. But in the Synapse
+      configuration, such requests can be handled in anyway you like. Most
+      obvious thing would be to do some processing to the message and send it to
+      the actual service, probably running on a different computer. But it is
+      not neccessary to always send the message to the actual service. You may
+      list any combination of tasks to be performed on the messages received for
+      the proxy service and terminate the flow or send some messge back to the
+      client even without sending it to an actual service. Let's explore a
+      simple proxy services scenario step by step to get a better feeling. As
+      you have downloaded and installed Synapse in the previous section, now you
+      can start directly on the sample.
+    </p>
+    <p/>
+    <h3>
+      Running the sample
+    </h3>
+    <p>
+      As in the previous section, there should be three entities running to
+      demonstrate proxy services, the server, client and Synapse. Let's start
+      with the server.
+    </p>
+    <p/>
+    <h4>
+      Starting the sample Axis2 server
+    </h4>
+    <p>
+      As you have built and deployed the SimpleStockQuote service in the
+      previous section, you can simply start the server by switching to the &lt;synapse-home&gt;/samples/axis2Server
+      directory and running the following command.
+    </p>
+    <div class="command">
+      <p>
+        Linux / Unix: . axis2server.sh
+      </p>
+      <p>
+        Windows: axis2server.bat
+      </p>
+    </div>
+    <p>
+      You can see the console messages as in the previous section.
+    </p>
+    <h4>
+      Starting Synapse
+    </h4>
+    <p>
+      We have to start Synapse with a configuration containing a proxy service
+      definition. In this case we are using the synapse_sample_100.xml, so that
+      you don't have to write the configuration your self.
+    </p>
+<pre xml:space="preserve">&lt;definitions xmlns="http://ws.apache.org/ns/synapse"&gt;
+    &lt;proxy name="StockQuoteProxy"&gt;
+        &lt;target&gt;
+            &lt;endpoint&gt;
+                &lt;address uri="http://localhost:9000/soap/SimpleStockQuoteService"/&gt;
+            &lt;/endpoint&gt;
+            &lt;outSequence&gt;
+                &lt;send/&gt;
+            &lt;/outSequence&gt;
+        &lt;/target&gt;
+        &lt;publishWSDL uri="file:repository/conf/sample/resources/proxy/sample_proxy_1.wsdl"/&gt;
+    &lt;/proxy&gt;
+&lt;/definitions&gt;</pre>
+    <p/>
+    <p>
+      The above configuration will expose a proxy service named StockQuoteProxy
+      and specifies an endpoint
+      (http://localhost:9000/soap/SimpleStockQuoteService) as the target for the
+      proxy service. Therefore, messages coming to the proxy service will be
+      directed to the address http://localhost:9000/soap/SimpleStockQuoteService
+      specified in the endpoint. There is also an out sequence for the proxy
+      service, which is applicable for response messages. In the out sequence,
+      we just send the messages back to the client. The publishWSDL tag
+      specifies an WSDL to be published for this proxy service. Let's start
+      Synapse with this sample configuration by running the below command from
+      the &lt;synapse-home&gt;/bin directory. It is possible to specify a
+      sequence of mediation for incoming messages instead of a target endpoint,
+      and many other possibilities and options are available to configure proxy
+      services. These are explained in the samples and configuration guides.
+    </p>
+    <p/>
+    <div class="command">
+      <p>
+        Linux / Unix: . synapse.sh -sample 100
+      </p>
+      <p>
+        Windows: synapse.bat -sample 100
+      </p>
+    </div>
+    <p/>
+    <p>
+      Synapse will display a set of messages as in the previous section
+      describing the steps of starting procedure. Before running the client, it
+      is time to observe another feature of proxy services. That is diplaying
+      the published WSDL. Just open a web browser and point it to the address
+      http://localhost:8080/soap/StockQuoteProxy?wsdl. You will see the
+      sample_proxy_1.wsdl specified in the configuration but containing the
+      correct EPR for the service over http/s.
+    </p>
+    <p/>
+    <h4>
+      Run the client
+    </h4>
+    <p>
+      Now it is time to see it in action. Go to the &lt;synapse-home&gt;/samples/axis2Clients
+      directory and type the following command:
+    </p>
+    <div class="command">
+      ant stockquote -Dtrpurl=http://localhost:8080/soap/StockQuoteProxy
+      -Dmode=quote -Dsymbol=IBM
+    </div>
+    <p>
+      The above command sends a stockquote request directly to the provided
+      transport endpoint at: http://localhost:8080/soap/StockQuoteProxy. You
+      will see the response from the server displayed on the console as follows:
+    </p>
+    <div class="consoleOutput">
+      Standard :: Stock price = $165.32687331383468
+    </div>
+    <p/>
+    <p>
+      This quick guide illustrates the simple use case of proxy services. Please
+      refer to samples #100 and above in the Samples guide, for indepth coverage
+      of more advanced use cases.
+    </p>
+    <p/>
+    <p>
+      Yes, you are done with a quick look at Synapse. Now it is time to go
+      deeper and reveal the advanced features of Synapse. You can browse through
+      the samples for your interested areas. If you have any issue regarding
+      Synapse as a user, feel free ask it in the Synapse user mailing list
+      (http://ws.apache.org/synapse/mail-lists.html).
+    </p>
+    <p/>
+    <p/>
+    <p/>
+  </body>
+</html>
\ No newline at end of file

Propchange: webservices/synapse/trunk/java/src/site/xdoc/1_0/quickstart.xml
------------------------------------------------------------------------------
    svn:executable = *



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


Mime
View raw message