jaliya 2005/06/11 01:23:54
Modified: sandesha/xdocs architecture.html interopguide.html
navigation.xml userguide.html
sandesha/xdocs/images ClientClass.jpg
ClientInitialization.png ClientTermination.png
EchoAsync.png EchoSync.png PingAsync.png
PingSync.png ServerClass.jpg
Added: sandesha/xdocs releases.html
Log:
Change the documentation to relflect the latest changes
Revision Changes Path
1.6 +5 -5 ws-fx/sandesha/xdocs/architecture.html
Index: architecture.html
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/xdocs/architecture.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- architecture.html 25 May 2005 10:09:01 -0000 1.5
+++ architecture.html 11 Jun 2005 08:23:54 -0000 1.6
@@ -181,8 +181,8 @@
<h3 style="text-align: justify;">Client Side - Initialization</h3>
<p style="text-align: justify;">This is happening only at the first message
of a
particular sequence. Web service client should initialize the reliable
messaging
-environment before sending messages. This can be done by calling the
method
-initClient(true) in the RMInitiator class. This will Initialize the Queue,
+environment before sending messages. This can be done by creating a
+SandeshaContext and adding a new sequence to it. This will Initialize the
Queue,
Sender and the Client side receiver.</p>
<p style="text-align:center">
<img border="0" src="images/ClientInitialization.png" width="556"
height="250"></p>
@@ -195,8 +195,8 @@
<p >
This is happening only after the last message of a
particular sequence. Web service client should terminate the RM Environment
-after receiving all the messages. This can be done by calling the
method
-stopClient() in the RMInitiator class. This will first check whether all the
+after receiving all the messages. This can be done by calling the
method
+ctx.endSequence(call) in the SandeshaContext class. This will first check
whether all the
sequence are complete with acknowledgements and then terminate the Queue,
Sender
and the Client side receiver passing control back to the client.</p>
<p style="text-align:center">
@@ -213,7 +213,7 @@
reference in the <wsa:From> address. So the sequence acknowledgements
will be
sent through a new connection other than the one use for the request.</p>
<p style="text-align:center">
-<img border="0" src="images/PingAsync.png" width="799" height="402"></p>
+<img border="0" src="images/PingAsync.png" width="798" height="366" ></p>
<p style="text-align:center">
<font size="2">Figure 7: Client Side - Request Only with Asynchronous
Acknowledgement</font></p>
1.4 +10 -10 ws-fx/sandesha/xdocs/interopguide.html
Index: interopguide.html
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/xdocs/interopguide.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- interopguide.html 10 Jun 2005 11:46:37 -0000 1.3
+++ interopguide.html 11 Jun 2005 08:23:54 -0000 1.4
@@ -24,29 +24,29 @@
sure that a firewall is not blocking the response path (default port 9090)
and
you may need to have a public IP address).
</p>
-<h3><font size="4">With IBM implementation</font></h3>
+<h3><font size="4">With IBM Implementation</font></h3>
<p>Server endpoint is <a
href="http://wsi.alphaworks.ibm.com:8080/wsrm/services/rmDemos">http://wsi.alphaworks.ibm.com:8080/wsrm/services/rmDemos</a></p>
<p>With IBM we have successfully interoperated both Ping and EchoString
scenarios.
Classes IBMEcho, IBMAsyncPing and IBMSyncPing can be used to test the
interoperability
with this endpoint. These are available in the package
org.apache.sandesha.interop
of the 'interop' folder.
</p>
-<h3><font size="4">With Microsoft implementation</font></h3>
+<h3><font size="4">With Microsoft Implementation</font></h3>
<p>Server endpoint is <a
href="http://131.107.153.195/SecureReliableMessaging/ReliableOneWayDual.svc">http://131.107.153.195/SecureReliableMessaging/ReliableOneWayDual.svc</a></p>
<p>Sandesha interoperated with the above Ping service ednpoints available
from Microsoft.
Classes MicrosoftAsyncPing and MicrosoftSyncPing can be used to test the
interoperability
with this endpoint. These are available in the package
org.apache.sandesha.interop
of the 'interop' folder.
</p>
-<h3><font size="4">With Systinet server</font></h3>
+<h3><font size="4">With Systinet Server</font></h3>
<p>Server endpoint is <a
href="http://soap.systinet.net:6064/Service">http://soap.systinet.net:6064/Service</a></p>
<p>Sandesha has also proved to be interoperable with the Systinet server.
The client stub classes are SystinetSyncPing and SystinetAsyncPing,
available
in the package org.apache.sandesha.interop of the 'interop' folder.
</p>
-<h3><font size="4">Using the test client webapp</font></h3>
+<h3><font size="4">Using Test Client webapp</font></h3>
<p>We have created a simple web application which you can deploy on tomcat
and
-test the interoperability with any available WS-RM server implementation.To
build the webapp,
+test the interoperability with any available WS-RM server implementation. To
build the webapp,
</p>
<p>Make sure that you have Apache Ant installed in your system. After this
go to the the
folder 'interop' in command prompt and type,</p>
@@ -54,21 +54,21 @@
<source>ant war</source>
</p>
<p>
-This will create the sandesha-interop.war file in the subfolder 'dist/war'.
Copy this
+This will create the sandesha-interop.war file in the subfolder
'target/dist/war'. Copy this
to the webapps folder of tomcat and start the tomcat server. Now you are
ready to run
the Sandesha interop client. Start your web browser and go to URL <a
href="http://localhost:8080/sandesha-interop/interop.jsp">http://localhost:8080/sandesha-interop/interop.jsp</a>
This should show you the interop client web page.
</p>
<p>
-Most of the fields in this web page are self-explanaitory. First you can set
the
+Most of the fields in this web page are self-explanatory. First you can set
the
target field to any valid target URL. After this choose the operation Ping
or echoString accordingly.
-The AcksTo field represents the wsrm:acksTo value. If acksTo is anonymous
the
+The AcksTo field represents the <wsrm:AcksTo> value. If ScksTo is
anonymous the
acknowledgements will be sent in a synchronous path. You can also set the
-fields From, To and ReplyTo which represent wsa:from, wsa:to and wsa:replyTo
respectively. ReplyTo should say where you expect to receive applications
responses.
+fields From, To and ReplyTo which represent <wsa:From>, <wsa:To>
and <wsa:ReplyTo> respectively. ReplyTo should say where you expect to
receive applications responses.
FaultTo URL should point to the location you expect to receive faults.
Finally you can mention weather the client should send a sequence offer
which
is the sequence id of the response path, and the number of application
messages you wish to send to the server.
</p>
</body>
-</html>
+</html>
\ No newline at end of file
1.5 +24 -12 ws-fx/sandesha/xdocs/navigation.xml
Index: navigation.xml
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/xdocs/navigation.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- navigation.xml 26 May 2005 09:58:29 -0000 1.4
+++ navigation.xml 11 Jun 2005 08:23:54 -0000 1.5
@@ -1,14 +1,26 @@
-<!-- Created By Eran Chinthaka -->
<project name="Sandesha">
- <title>Sandesha</title>
- <body>
+ <title>Sandesha</title>
+
+ <body>
+ <menu name="Apache Sandesha">
+ <item name="User Guide" href="userguide.html" />
+
+ <item name="Architecture Guide" href="architecture.html" />
+
+ <item name="Interop Guide" href="interopguide.html" />
+
+ <item name="Downloads">
+ <item name="Releases" href="releases.html" />
+ <item name="Source Code"
href="http://svn.apache.org/viewcvs.cgi/webservices/axis/trunk/?root=Apache-SVN"
/>
+ </item>
+ <item name="Project Information">
+ <item name="Mailing Lists" href="mail-lists.html" />
+ <item name="Project Team" href="team-list.html" />
+ <item name="Issue Tracking" href="issue-tracking.html" />
+ </item>
- <menu name="Sandesha">
- <item name="Simple User Guide" href="userguide.html"/>
- <item name="Architecture Guide" href="architecture.html"/>
- <item name="Interop Guide" href="interopguide.html"/>
- </menu>
-
-
- </body>
-</project>
\ No newline at end of file
+
+ </menu>
+ </body>
+</project>
+
1.8 +169 -203 ws-fx/sandesha/xdocs/userguide.html
Index: userguide.html
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/xdocs/userguide.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- userguide.html 10 Jun 2005 11:46:37 -0000 1.7
+++ userguide.html 11 Jun 2005 08:23:54 -0000 1.8
@@ -15,81 +15,56 @@
<p>This document will guide you through the configuration of Sandesha
and finally
to run the sample scenarios.</p>
<h2><font size="5">Configuration</font></h2>
-<p>Configuration of Apache Sandesha can be described in three steps.</p>
-<ul type="square">
- <li>Checkout the code</li>
- <li>Run the Maven (Compile)</li>
- <li>use <font color="#FF0000"> </font>Sandesha-1.0.jar </li>
-</ul>
-<p>So as the first step let's focus on how to configure Sandesha and run the
-sample tests. Following steps will guide you through the process.</p>
-<h3><font size="4">Check out Sandesha</font></h3>
-<p>Apache Sandesha is available for download as source. Please follow the
CVS
-instruction to download the code
-<a href="http://ws.apache.org/ws-fx/sandesha/cvs-usage.html">
-http://ws.apache.org/ws-fx/sandesha/cvs-usage.html</a></p>
-<h3>Build Using Apache Maven</h3>
-<p>Once you have the so</p>
-<p>Note : Sandesha build process is done using Apache Maven. So assume that
the
-user has already configured Maven in his machine. </p>
-<p>Build process is mainly to run a single Maven command and it is</p>
-<p>
-<source>maven</source></p>
-<p>Once the build process is completed you can find
<b>Sandesha-1.0.jar</b>
-under target directory. </p>
-<p>Ok now let us see how we can use Sandesha in the client side of your
-application and also in the server side. The following section of this user
-guide will explain them in details.</p>
+<p>Sandesha can be downloaded as <font color="#FF0000">binary</font> or
+<font color="#FF0000">source</font> distributions. This document assumes
that
+the user has downloaded the binary distribution, however if you have
downloaded
+the source distribution, you can create the binaries using the maven command
+"maven dist-bin".</p>
+<p>Following steps will guide to configure Apache Sandesha on both client
and
+server sides.</p>
<h2><font size="5">Use Sandesha in the Client Side</font></h2>
-<p>Following two steps will enable the usage of Sandesha in the Client Side.
-(Assume that you have build Sandesha using Maven)</p>
+<p>Following two steps will enable the usage of Sandesha in the Client
Side.</p>
<ul type="square">
- <li>Copy the <b>Sandesha-1.0.jar</b> to your class path</li>
- <li>Copy the <b>config/client-config.wsdd</b> to the class path of your
- client. </li>
+ <li>Copy the <b>Sandesha-beta.jar</b> to your classpath (this jar can be
found
+ in the root directory of the unzipped binary distribution)</li>
+ <li>Add the jars in the "lib" directory of the binary
distribution to your
+ classpath.</li>
</ul>
-<p>To enable Sandesha in the client side, the only requirement is to use
-<b>RMTransport</b> as the transport in the <b>client-config.wsdd.</b> If you
-copy the <b>client-config.wsdd</b> found under config directory
-then it is already configured with this property and ready to use.</p>
-<p>Note: please add the jars, that are there in the target/lib to your class
-path.</p>
<p>There are two main ways that one can use axis to write web service client
applications.</p>
<ol>
<li>1. Using Generated Stubs</li>
<li>2. Using Dynamic Invocation Interface (DII)</li>
</ol>
-<p>At the moment when you generate the stubs there is no way that we can
inform
+<p>At the moment when we generate the stubs there is no way that we can
inform
the apache tool (wsdl2java) to generate stubs that are Sandesha aware and
hence
we need to use the DII in order to use Sandesha in the client side. However
if
-there are existing stubs, then to use Sandesha with them then the user has
to
-manually edit the stubs generated to insert some properties to the call
object.
-We will see one example of this nature as well.</p>
+there are existing stubs, then to use Sandesha with them the user has
to
+manually edit the stubs generated to insert properties to the call
object.</p>
<h3>Simple Request-Response Client</h3>
-<p>To simply use Sandesha in the client side, user has to add few lines to
the
+<p>To use Sandesha in the client side, user has to add few lines to the
existing client. Following code fragment shows the required additions that
one
should make. </p>
-<p><source>public static void main(String[] args) {
-try {
-Service service = new Service();
-Call call = (Call) service.createCall();
-<span style="background-color: #CCCCCC">SandeshaContext ctx = new
SandeshaContext();</span>
-<span style="background-color: #CCCCCC">ctx.addNewSequeceContext(call,
targetUrl,
-
"urn:wsrm:echoString",Constants.ClientProperties.IN_OUT);</span>
-call.setOperationName(new QName("http://tempuri.org/", "echoString"));
-call.addParameter("Text", XMLType.XSD_STRING, ParameterMode.IN);
-call.addParameter("Seq", XMLType.XSD_STRING, ParameterMode.IN);
-call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
-
-<span style="background-color: #CCCCCC">ctx.setLastMessage(call);</span>
-String ret = (String) call.invoke(new Object[]{"Sandesha Echo 1", "abcdef"});
-System.out.println("The Response for First Messsage is :" + ret);
-
-<span style="background-color: #CCCCCC">ctx.endSequence(call);</span>
-} catch (Exception e) { e.printStackTrace();
-}
-}</source></p>
+<source><pre>public static void main(String[] args) {
+ try {
+ Service service = new Service();
+ Call call = (Call) service.createCall();
+ <span style="background-color: #CCCCCC">SandeshaContext ctx = new
SandeshaContext();</span>
+ <span style="background-color: #CCCCCC">ctx.addNewSequeceContext(call,
targetUrl,</span>
+ <span style="background-color:
#CCCCCC">"urn:wsrm:echoString",Constants.ClientProperties.IN_OUT);</span>
+ call.setOperationName(new QName("http://tempuri.org/", "echoString"));
+ call.addParameter("Text", XMLType.XSD_STRING, ParameterMode.IN);
+ call.addParameter("Seq", XMLType.XSD_STRING, ParameterMode.IN);
+ call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
+
+ <span style="background-color: #CCCCCC">ctx.setLastMessage(call);</span>
+ String ret = (String) call.invoke(new Object[]{"Sandesha Echo 1",
"abcdef"});
+ System.out.println("The Response for First Messsage is :" + ret);
+
+ <span style="background-color: #CCCCCC">ctx.endSequence(call);</span>
+ } catch (Exception e) { e.printStackTrace();
+ }
+}</pre></source></p>
<h4>Explanation on Additions :</h4>
<p>
<span style="font-weight: 700; background-color: #CCCCCC">SandeshaContext
ctx = new SandeshaContext();</span></p>
@@ -131,27 +106,27 @@
messaging operation. Again the following code fragment will explain the
additional code lines required. For this we use a client that will invoke a
service 3 times. (This for the explanation purpose only)</p>
-<p><source>public static void main(String[] args) {
-try {
-Service service = new Service();
-Call call = (Call) service.createCall();
-
-SandeshaContext ctx = new SandeshaContext();
-ctx.addNewSequeceContext(call,targetUrl ,
- "urn:wsrm:Ping", Constants.ClientProperties.IN_ONLY);
-call.setOperationName(new QName("http://tempuri.org/", "ping"));
-call.addParameter("arg1", XMLType.XSD_STRING, ParameterMode.IN);
+<source><pre>public static void main(String[] args) {
+ try {
+ Service service = new Service();
+ Call call = (Call) service.createCall();
+
+ SandeshaContext ctx = new SandeshaContext();
+ ctx.addNewSequeceContext(call,targetUrl ,
+ "urn:wsrm:Ping", Constants.ClientProperties.IN_ONLY);
+ call.setOperationName(new QName("http://tempuri.org/", "ping"));
+ call.addParameter("arg1", XMLType.XSD_STRING, ParameterMode.IN);
-call.invoke(new Object[]{"Sandesha Ping 1"});
-call.invoke(new Object[]{"Sandesha Ping 2"});
-ctx.setLastMessage(call);
-call.invoke(new Object[]{"Sandesha Ping 3"});
-ctx.endSequence(call);
-
-} catch (Exception e) {
- e.printStackTrace();
-}
-}</source></p>
+ call.invoke(new Object[]{"Sandesha Ping 1"});
+ call.invoke(new Object[]{"Sandesha Ping 2"});
+ ctx.setLastMessage(call);
+ call.invoke(new Object[]{"Sandesha Ping 3"});
+ ctx.endSequence(call);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+}</pre></source></p>
<p>As it can be seen, we need the same additions as above and the
explanations
are the same.</p>
@@ -161,29 +136,28 @@
<p>In this scenario we will look at how Sandesha can be used in a one-way
messaging operation using same transport channel to get
acknowledgements. For this we use a client that will invoke a
service 3 times. (This for the explanation purpose only)</p>
-<p><source>
-public static void main(String[] args) {
-try {
-Service service = new Service();
-Call call = (Call) service.createCall();
-
-SandeshaContext ctx = new SandeshaContext();
-<span style="background-color:
#CCCCCC">ctx.addNewSequeceContext(call,targetUrl ,
- "urn:wsrm:Ping", Constants.ClientProperties.IN_ONLY,</span><span
style="background-color: #FFFF99">true</span>);
-
-call.setOperationName(new QName("http://tempuri.org/", "ping"));
-call.addParameter("arg1", XMLType.XSD_STRING, ParameterMode.IN);
-
-call.invoke(new Object[]{"Sandesha Ping 1"});
-call.invoke(new Object[]{"Sandesha Ping 2"});
-ctx.setLastMessage(call);
-call.invoke(new Object[]{"Sandesha Ping 3"});
-ctx.endSequence(call);
-
-} catch (Exception e) {
- e.printStackTrace();
-}
-}</source></p>
+<source><pre>public static void main(String[] args) {
+ try {
+ Service service = new Service();
+ Call call = (Call) service.createCall();
+
+ SandeshaContext ctx = new SandeshaContext();
+ <span style="background-color:
#CCCCCC">ctx.addNewSequeceContext(call,targetUrl ,</span>
+ <span style="background-color: #CCCCCC">"urn:wsrm:Ping",
Constants.ClientProperties.IN_ONLY,</span><span style="background-color:
#FFFF99">true</span>);
+
+ call.setOperationName(new QName("http://tempuri.org/", "ping"));
+ call.addParameter("arg1", XMLType.XSD_STRING, ParameterMode.IN);
+
+ call.invoke(new Object[]{"Sandesha Ping 1"});
+ call.invoke(new Object[]{"Sandesha Ping 2"});
+ ctx.setLastMessage(call);
+ call.invoke(new Object[]{"Sandesha Ping 3"});
+ ctx.endSequence(call);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+}</pre></source></p>
<p>The only change we need is to set the flag "sync" to
"true" when we add the
sequence to SandeshaContext, as shown bellow.</p>
@@ -209,13 +183,12 @@
way) to get the correct functionality. Following code fragment contains all
the
parameters that the client can set inside the client code.</p>
-<p><source>
-ctx.setToUrl(call,
"http://test.organization.com:8080/wsrm/services/rmDemos");
-ctx.setFromUrl(call,
"http://our.organization.org:9070/axis/services/RMService");
-ctx.setReplyToUrl(call,
"http://our.organization.org:9070/axis/services/RMService");
-ctx.setAcksToUrl(call,
"http://our.organization.org:9070/axis/services/RMService");
-ctx.setFaultToUrl(call,
"http://our.organization.org:9070/axis/services/RMService");
-ctx.setSendOffer(call);</source></p>
+<source><pre> ctx.setToUrl(call,
"http://test.organization.com:8080/wsrm/services/rmDemos");
+ ctx.setFromUrl(call,
"http://our.organization.org:9070/axis/services/RMService");
+ ctx.setReplyToUrl(call,
"http://our.organization.org:9070/axis/services/RMService");
+ ctx.setAcksToUrl(call,
"http://our.organization.org:9070/axis/services/RMService");
+ ctx.setFaultToUrl(call,
"http://our.organization.org:9070/axis/services/RMService");
+ ctx.setSendOffer(call);</pre></source></p>
<p>These properties are very useful when debugging applications. By changing
them appropriately the user can route messages through TCP Monitor or some
@@ -236,93 +209,93 @@
operations are in the same service "RMInteropService" as two
different
operations. However these need NOT be operations of a single service.</p>
-<p><source>
-public void testEchoPing() throws Exception {
-System.out.println("===========Echo and Ping Combined Test
Started=============");
-UUIDGen uuidGen = UUIDGenFactory.getUUIDGen(); //Can use this for continuous
testing.
-String str = uuidGen.nextUUID();
-
-Service service = new Service();
-Call echoCall = (Call) service.createCall();
-
-SandeshaContext ctx = new SandeshaContext();
-//------------------------ECHO------------------------------------------
-ctx.addNewSequeceContext(echoCall, targetURL, "urn:wsrm:echoString",
- Constants.ClientProperties.IN_OUT);
-ctx.setAcksToUrl(echoCall,
- "http://127.0.0.1:" + defaultClientPort +
"/axis/services/RMService");
-ctx.setReplyToUrl(echoCall,
- "http://127.0.0.1:" + defaultClientPort +
"/axis/services/RMService");
-ctx.setSendOffer(echoCall);
-
-echoCall.setOperationName(new QName("http://tempuri.org/", "echoString"));
-
-echoCall.addParameter("arg1", XMLType.XSD_STRING, ParameterMode.IN);
-echoCall.addParameter("arg2", XMLType.XSD_STRING, ParameterMode.IN);
-echoCall.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
-//----------------------ECHO----------------------------------------------
-
-//------------------------PING--------------------------------------------
-Call pingCall = (Call) service.createCall();
-ctx.addNewSequeceContext(pingCall, targetURL, "urn:wsrm:Ping",
- Constants.ClientProperties.IN_ONLY);
-ctx.setAcksToUrl(pingCall,
- "http://127.0.0.1:" + defaultClientPort + "/axis/services/RMService");
-
-pingCall.setOperationName(new QName("http://tempuri.org/", "ping"));
-pingCall.addParameter("arg2", XMLType.XSD_STRING, ParameterMode.IN);
-//----------------------PING----------------------------------------------
-
-String ret = (String) echoCall.invoke(new Object[]{"Sandesha Echo 1", str});
-System.out.println("The Response for First Messsage is :" + ret);
-pingCall.invoke(new Object[]{ret});
-
-ret = (String) echoCall.invoke(new Object[]{"Sandesha Echo 2", str});
-System.out.println("The Response for Second Messsage is :" + ret);
-pingCall.invoke(new Object[]{ret});
-
-ctx.setLastMessage(echoCall);
-ret = (String) echoCall.invoke(new Object[]{"Sandesha Echo 3", str});
-System.out.println("The Response for Third Messsage is :" + ret);
-ctx.setLastMessage(pingCall);
-pingCall.invoke(new Object[]{ret});
-
-RMReport echoReport = ctx.endSequence(echoCall);
-RMReport pingReport=ctx.endSequence(pingCall);
-
-assertEquals(echoReport.isAllAcked(), true);
-assertEquals(echoReport.getNumberOfReturnMessages(), 3);
-
-assertEquals(pingReport.isAllAcked(), true);
-assertEquals(pingReport.getNumberOfReturnMessages(), 0);
-System.out.println("===========Echo and Ping Combined Test
Finished==========");
+<p><source><pre>public void testEchoPing() throws Exception {
+ System.out.println("===========Echo and Ping Combined Test
Started=============");
+ UUIDGen uuidGen = UUIDGenFactory.getUUIDGen(); //Can use this for
continuous testing.
+ String str = uuidGen.nextUUID();
+
+ Service service = new Service();
+ Call echoCall = (Call) service.createCall();
+
+ SandeshaContext ctx = new SandeshaContext();
+ //------------------------ECHO------------------------------------------
+ ctx.addNewSequeceContext(echoCall, targetURL, "urn:wsrm:echoString",
+ Constants.ClientProperties.IN_OUT);
+ ctx.setAcksToUrl(echoCall,
+ "http://127.0.0.1:" + defaultClientPort +
"/axis/services/RMService");
+ ctx.setReplyToUrl(echoCall,
+ "http://127.0.0.1:" + defaultClientPort +
"/axis/services/RMService");
+ ctx.setSendOffer(echoCall);
+
+ echoCall.setOperationName(new QName("http://tempuri.org/",
"echoString"));
+
+ echoCall.addParameter("arg1", XMLType.XSD_STRING, ParameterMode.IN);
+ echoCall.addParameter("arg2", XMLType.XSD_STRING, ParameterMode.IN);
+ echoCall.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
+
//----------------------ECHO----------------------------------------------
+
+
//------------------------PING--------------------------------------------
+ Call pingCall = (Call) service.createCall();
+ ctx.addNewSequeceContext(pingCall, targetURL, "urn:wsrm:Ping",
+ Constants.ClientProperties.IN_ONLY);
+ ctx.setAcksToUrl(pingCall,
+ "http://127.0.0.1:" + defaultClientPort + "/axis/services/RMService");
+
+ pingCall.setOperationName(new QName("http://tempuri.org/", "ping"));
+ pingCall.addParameter("arg2", XMLType.XSD_STRING, ParameterMode.IN);
+
//----------------------PING----------------------------------------------
+
+ String ret = (String) echoCall.invoke(new Object[]{"Sandesha Echo 1",
str});
+ System.out.println("The Response for First Messsage is :" + ret);
+ pingCall.invoke(new Object[]{ret});
+
+ ret = (String) echoCall.invoke(new Object[]{"Sandesha Echo 2", str});
+ System.out.println("The Response for Second Messsage is :" + ret);
+ pingCall.invoke(new Object[]{ret});
+
+ ctx.setLastMessage(echoCall);
+ ret = (String) echoCall.invoke(new Object[]{"Sandesha Echo 3", str});
+ System.out.println("The Response for Third Messsage is :" + ret);
+ ctx.setLastMessage(pingCall);
+ pingCall.invoke(new Object[]{ret});
+
+ RMReport echoReport = ctx.endSequence(echoCall);
+ RMReport pingReport=ctx.endSequence(pingCall);
+
+ assertEquals(echoReport.isAllAcked(), true);
+ assertEquals(echoReport.getNumberOfReturnMessages(), 3);
+
+ assertEquals(pingReport.isAllAcked(), true);
+ assertEquals(pingReport.getNumberOfReturnMessages(), 0);
+ System.out.println("===========Echo and Ping Combined Test
Finished==========");
}
-</source></p>
+</pre></source></p>
<p>Note: Samples of all these scenarios are available in the
"interop"
directory. Sample of invoking two web services in a same client is available
as
a test case in the "test" directory.</p>
<h2><font size="5">To Use Sandesha in the Server Side</font></h2>
-<p>This can again be done using two steps.</p>
-<p>Assume that axis is configured in Tomcat Server </p>
+<p>Sandesha configuration in the server side can be explained using two
simple
+steps. (Assume that axis is configured in Tomcat Server)</p>
<ul type="square">
- <li>Copy the <b>Sandesha-1.0.jar</b> to the
<b>CATALINA_HOME/webapps/axis/WEB-INF/lib</b> along
-with the other new jars that can be found in <b>target/lib</b> directory of
Sandesha.</li>
+ <li>Copy the <b>Sandesha-beta.jar</b> to the
<b>CATALINA_HOME/webapps/axis/WEB-INF/lib</b> along
+with the other new jars that can be found in <b>lib</b> directory of
Sandesha.
+ (If you are using the Axis1.2 release, then the user have to copy only the
+ "addressing-SNAPTSHOT.jar" additionally)</li>
<li>To configure Sandesha for a particular service( say MyService) change
the
<b>deploy.wsdd</b> of <b> MyService</b> according to the
following.</li>
</ul>
<p>Note that we have to change the provider to <b>RMProvider</b> and need to
add two
-request handlers. A sample of this <b>deploy.wsdd</b> can be found in the
interop
-directory named <b>RMInteropServiceDeploy</b> with the required bat file to
deploy the
-service. (make sure that the classes for the <b>MyService</b> is copied to
-<b>CATALINA_HOME/webapps/axis/WEB-INF/classes. RMProvider</b> by default
will
+request handlers. A sample of this <b>deploy.wsdd</b> can be found in the
sample
+directory named <b>RMSampleServiceDeploy</b> with the required bat file to
deploy the
+service. (make sure that the classes for the <b>MyService</b> is copied to
<b>CATALINA_HOME/webapps/axis/WEB-INF/classes. RMProvider</b> by default will
use the <b>RPCProvider</b> to invoke the services, however user can specify
the
-actual provider that is required to invoke a particular service in <b>
-sandesha.properties</b> file that can be found in <b>config</b>
directory.</p>
+actual provider that is required to invoke a particular service in
<b>sandesha.properties</b> file that can be found in
+<b>Sandesha-beta.jar</b>.</p>
-<p><source><deployment xmlns="http://xml.apache.org/axis/wsdd/"
+<source><pre><deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="MyService" provider="Handler">
<requestFlow>
@@ -334,7 +307,7 @@
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="request"/>
</service>
-</deployment></source></p>
+</deployment></pre></source></p>
<h3>Using RMSource Inside a Server</h3>
@@ -348,7 +321,7 @@
in the same server with "RMClientProvider as the provider. This
behavior can
easily obtained using a deployment descriptor as shown below. </p>
-<p><source><deployment xmlns="http://xml.apache.org/axis/wsdd/"
+<source><pre><deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="MyService" provider="java:RPC">
<parameter name="className"
value="samples.userguide.example3.MyService"/>
@@ -367,7 +340,7 @@
<parameter name="scope" value="request"/>
</service>
</deployment>
- </source></p>
+ </pre></source></p>
<p>In this deployment descriptor "MyService" is the web service
that behaves as
a client for some other service. (MyService is invoking some other web
service
@@ -390,23 +363,18 @@
<h2>Running Samples </h2>
-<h3>Build the Sample Classes</h3>
-<p>Note : Sandesha build process is done using Apache Maven. So assume that
the
-user has already configured Maven in his machine.
-Build process is mainly to run a single Maven command and it is</p>
-<p>
-<source>maven</source></p>
-<p>Since we need the samples also to be build we need one more command
(Let's
-use the interop samples)</p>
-<p>
-<source>maven interop:compile</source></p>
-<p>If you need a project to be created for eclipse or Intellij IDEA use the
+<p>If you are using the binary distribution of Sandesha then the samples are
+already built and inside the Sandesha-beta.jar itself. Therefore the testing
is
+just matter of executing some ant targets provided in the
"build.xml" file in
+the samples directory. If you have downloaded the source distribution and
need
+to run the samples, please build the source first using the maven.</p>
+<p>If you need a project to be created for Eclipse or Intellij IDEA use the
maven commands</p>
<p>
<source>maven eclipse</source> </p>
<p><source>maven idea</source> </p>
-<h3><font size="4">Run the Inter-op Samples</font></h3>
-<p>Go to the directory, interop under the main directory tree. To run the
sample
+<h3><font size="4">Run the Samples</font></h3>
+<p>Go to the directory, samples under the main directory tree. To run the
sample
scenarios we only need to type simple ant commands in a command line.</p>
<p>Followings are the commands to run the samples scenarios.</p>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%">
@@ -438,10 +406,8 @@
different HTTP Connections.</td>
</tr>
</table>
-<p>In all these scenarios the service <b>RMInteropService</b> is deployed in
a
-<b>SimpleAxisServer</b> using the ant script and the results will be shown
in TCP
-monitors. Please check whether the java processes that is used to invoke TCP
-monitors are not running in the back ground, before every test.</p>
+<p>In all these scenarios the service <b>RMSampleService</b> is deployed in
a <b>SimpleAxisServer</b>
+using the ant script and the results will be shown in TCP monitors. </p>
<p> </p>
<p> </p>
<p> </p>
1.1 ws-fx/sandesha/xdocs/releases.html
Index: releases.html
===================================================================
<title>Releases</title><h2>Releases</h2>
<div align="center">
<table border="1" style="border-collapse: collapse" width="76%"
id="table1">
<tr>
<td width="45" align="center">Name</td>
<td width="246" align="center">Distribution</td>
<td width="100" align="center">Date</td>
<td width="333" align="center">Description</td>
</tr>
<tr>
<td width="45" align="center" valign="middle"><div
align="center"><a name="M1"></a>
beta </div></td>
<td width="246"> <p>Source Distribution <a
href="http://cvs.apache.org/dist/axis/v2.0-M1/axis2-M1-src.zip">zip</a><br>
Binary Distribution <a
href="http://cvs.apache.org/dist/axis/v2.0-M1/axis2-M1-bin.zip">zip</a>
<br> </p>
</td>
<td width="100"><div align="center">24 - 02 - 2005
</div></td>
<td> Beta Release</td>
</tr>
</table>
</div>
1.2 +155 -124 ws-fx/sandesha/xdocs/images/ClientClass.jpg
<<Binary file>>
1.2 +86 -22 ws-fx/sandesha/xdocs/images/ClientInitialization.png
<<Binary file>>
1.2 +95 -42 ws-fx/sandesha/xdocs/images/ClientTermination.png
<<Binary file>>
1.2 +188 -69 ws-fx/sandesha/xdocs/images/EchoAsync.png
<<Binary file>>
1.2 +201 -70 ws-fx/sandesha/xdocs/images/EchoSync.png
<<Binary file>>
1.2 +109 -95 ws-fx/sandesha/xdocs/images/PingAsync.png
<<Binary file>>
1.2 +88 -89 ws-fx/sandesha/xdocs/images/PingSync.png
<<Binary file>>
1.2 +306 -261 ws-fx/sandesha/xdocs/images/ServerClass.jpg
<<Binary file>>