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
|
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] log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAXUtils).
[java] log4j:WARN Please initialize the log4j system properly.
[java] Main thread Thread[main,5,main]
[java] aClientMethod on thread Thread[main,5,main]
[java] setMyServiceCallback on thread Thread[pool-1-thread-3,5,main]
[java] someMethod on thread Thread[pool-1-thread-3,5,main]
[java] receiveResult on thread Thread[Axis2 Task,5,main]
[java] Result: -> someMethod -> receiveResult
[java] aClientMethod return from someMethod on thread Thread[main,5,main]
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
log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAXUtils).
log4j:WARN Please initialize the log4j system properly.
01-Jul-2007 21:20:06 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
01-Jul-2007 21:20:07 org.apache.catalina.startup.ContextConfig defaultWebConfig
INFO: No default web.xml
01-Jul-2007 21:20:07 org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd
01-Jul-2007 21:20:07 org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_1.dtd
01-Jul-2007 21:20:07 org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd
01-Jul-2007 21:20:07 org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_2_0.xsd
01-Jul-2007 21:20:07 org.apache.catalina.startup.DigesterFactory register
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xsd
01-Jul-2007 21:20:07 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
01-Jul-2007 21:20:07 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Main thread Thread[main,5,main]
aClientMethod on thread Thread[main,5,main]
setMyServiceCallback on thread Thread[pool-1-thread-1,5,main]
someMethod on thread Thread[pool-1-thread-1,5,main]
aClientMethod return from someMethod on thread Thread[main,5,main]
Sleeping ...
receiveResult on thread Thread[Axis2 Task,5,main]
Result: -> someMethod -> receiveResult
01-Jul-2007 21:20:08 org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.525 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
This shows that the Junit test cases have run successfully.
|