apache-tuscany/branches/sca-equinox/samples/simple-callback-ws
2008-11-13 00:03:10 +00:00
..
src Creating a branch for the equinox work. 2008-09-12 21:54:50 +00:00
build.xml Creating a branch for the equinox work. 2008-09-12 21:54:50 +00:00
pom.xml Updating artifact version to avoid dependenciy issues with artifacts from trunk 2008-11-13 00:03:10 +00:00
README Creating a branch for the equinox work. 2008-09-12 21:54:50 +00:00
simple-callback-ws.png Creating a branch for the equinox work. 2008-09-12 21:54:50 +00:00
simple-callback-ws.svg Creating a branch for the equinox work. 2008-09-12 21:54:50 +00:00

Simple Callback Sample Using Web Services
=========================================
This sample demonstrates asynchronous messaging using a callback over the
Web Service binding.  It is very similar to the simple-callback sample.
The only differences are that simplecallback.composite has been updated
to use the Web Service binding, and there is a simplecallback.wsdl file.

The README in the samples directory (the directory above this) provides 
general instructions about building and running samples. Take a look there 
first. 

If you just want to run it to see what happens open a command prompt, navigate
to this sample directory and do:

ant run

OR if you don't have ant, on Windows do

java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-simple-callback.jar simplecallback.SimpleCallbackClient

and on *nix do

java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-simple-callback.jar simplecallback.SimpleCallbackClient


Sample Overview
---------------
The sample provides a single composite with two components. MyClientComponent is 
wired to MyServiceComponent. The interface of MyServiceComponent describes one
method as ONEWAY and with a callback semantic. When a message passes from 
client to service the response is returned via the callback asynchronously.  

simple-callback/
  src/
    main/
      java/
        simplecallback/
          MyClient.java           - client interface 
          MyClientImpl.java       - implements the client and service callback
                                    interfaces
          MyService.java          - service interface
          MyServiceCallback.java  - service callback interface, implemented by the 
                                    client
          MyServiceImpl.java      - implements the service interface
          SimpleCallbackClient.java - starts the SCA Runtime and 
                                    deploys the simplecallback.composite. 
                                    It then calls MyClientComponent which in turn
                                    calls MyServiceComponent
      resources/
        simplecallback.composite  - the SCA assembly for this sample
        wsdl/
          simplecallback.wsdl     - the service description and callback binding  
    test/
      java/
        simplecallback/
          SimpleCallbackTestCase.java - JUnit test case 
  simple-callback.png             - a pictorial representation of the sample 
                                    .composite file
  build.xml                       - the Ant build file
  pom.xml                         - the Maven build file        

Building And Running The Sample Using Ant
-----------------------------------------
With the binary distribution the sample can be built and run using Ant as 
follows

cd simple-callback-ws
ant compile
ant run

You should see the following output from the run target.

run:
     [java] 14-Jan-2008 14:25:02 org.apache.tuscany.sca.http.jetty.JettyServer a
ddServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:8085/MyServiceCallbackCo
mponent
     [java] 14-Jan-2008 14:25:02 org.apache.tuscany.sca.http.jetty.JettyServer a
ddServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:8085/MyServiceComponent
     [java] Main thread Thread[main,5,main]
     [java] aClientMethod on thread Thread[main,5,main]
     [java] aClientMethod return from someMethod on thread Thread[main,5,main]
     [java] setMyServiceCallback on thread Thread[pool-1-thread-2,5,main]
     [java] someMethod on thread Thread[pool-1-thread-2,5,main]
     [java] receiveResult on thread Thread[pool-1-thread-4,5,main]
     [java] Result: -> someMethod -> receiveResult


Building And Running The Sample Using Maven 
-------------------------------------------
With either the binary or source distributions the sample can be built and run 
using Maven as follows. 

cd simple-callback-ws
mvn

You should see the following output from the test phase.

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running simplecallback.SimpleCallbackTestCase
14-Jan-2008 14:26:28 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
14-Jan-2008 14:26:28 org.apache.catalina.startup.ContextConfig defaultWebConfig
INFO: No default web.xml
14-Jan-2008 14:26:28 org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd
14-Jan-2008 14:26:28 org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_
1.dtd
14-Jan-2008 14:26:28 org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_
2.dtd
14-Jan-2008 14:26:28 org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_2_
0.xsd
14-Jan-2008 14:26:28 org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xs
d
14-Jan-2008 14:26:28 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8085
14-Jan-2008 14:26:28 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8085
14-Jan-2008 14:26:28 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
apping
INFO: Added Servlet mapping: http://L3AW203:8085/MyServiceCallbackComponent
14-Jan-2008 14:26:28 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
apping
INFO: Added Servlet mapping: http://L3AW203:8085/MyServiceComponent
Main thread Thread[main,5,main]
aClientMethod on thread Thread[main,5,main]
aClientMethod return from someMethod on thread Thread[main,5,main]
Sleeping ...
setMyServiceCallback on thread Thread[pool-1-thread-1,5,main]
someMethod on thread Thread[pool-1-thread-1,5,main]
receiveResult on thread Thread[pool-1-thread-2,5,main]
Result: -> someMethod -> receiveResult
14-Jan-2008 14:26:31 org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8085
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.312 sec

This shows that the Junit test cases have run successfully.