summaryrefslogtreecommitdiffstats
path: root/branches/trunk-20080910/samples/simple-callback-ws/README
blob: 6b27718f74a7f8ebd387d907d34c919d714f03ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
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.