| 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. |