You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ja...@apache.org on 2005/06/11 10:23:54 UTC
cvs commit: ws-fx/sandesha/xdocs/images ClientClass.jpg ClientInitialization.png ClientTermination.png EchoAsync.png EchoSync.png PingAsync.png PingSync.png ServerClass.jpg
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>>