![antelder](/assets/img/avatar_default.png)
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1069273 13f79535-47bb-0310-9956-ffa450edef68
311 lines
14 KiB
Text
311 lines
14 KiB
Text
Callback Web Services Client Sample
|
|
===================================
|
|
This sample demonstrates an SCA client that sends service requests to a
|
|
remote server and receives asynchronous callbacks from the server, using
|
|
Web service bindings for the service and the callback.
|
|
|
|
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, you need to start the
|
|
server first, so open a command prompt and navigate to the
|
|
callback-ws-service 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-callback-ws-service.jar myserver.CallbackServer
|
|
|
|
and on *nix do:
|
|
|
|
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-callback-ws-service.jar myserver.CallbackServer
|
|
|
|
Once the server is running 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-callback-ws-client.jar myapp.MyClientImpl
|
|
|
|
and on *nix do:
|
|
|
|
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-callback-ws-client.jar myapp.MyClientImpl
|
|
|
|
|
|
Sample Overview
|
|
---------------
|
|
The sample has a single component that has a reference with a service
|
|
interface and a callback interface, with Web service bindings for both
|
|
these interfaces. The service interface binding URI identifies the
|
|
service exposed by the callback-ws-service sample.
|
|
|
|
callback-ws-client/
|
|
src/
|
|
main/
|
|
java/
|
|
myapp/
|
|
MyClient.java - interface description for
|
|
MyClientComponent
|
|
MyClientImpl.java - component implementation
|
|
myserver/
|
|
MyService.java - interface description for
|
|
MyServiceComponent
|
|
MyServiceCallback.java - interface description for callback
|
|
resources/
|
|
myapp.composite - the SCA assembly for this sample
|
|
test/
|
|
java/
|
|
myapp/
|
|
CallbackClientTestCase.java - JUnit test case
|
|
callback-ws-client.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.
|
|
Before you do this, run the callback-ws-service sample to start up the
|
|
service that the client will talk to. Take a look at the README in
|
|
that sample and you will see you need the following commands:
|
|
|
|
cd callback-ws-service
|
|
ant run
|
|
|
|
You can then compile and run this sample using the following commands:
|
|
|
|
cd callback-ws-client
|
|
ant compile
|
|
ant run
|
|
|
|
You should see the following output from the run target.
|
|
|
|
run:
|
|
[java] 15-Jan-2008 10:21:38 org.apache.tuscany.sca.node.impl.SCADomainProxy
|
|
Impl init
|
|
[java] INFO: Domain will be started stand-alone as domain URL is not provid
|
|
ed
|
|
[java] 15-Jan-2008 10:21:39 org.apache.tuscany.sca.domain.impl.SCADomainImp
|
|
l registerNode
|
|
[java] INFO: Registered node: http://L3AW203:1336 at endpoint http://L3AW20
|
|
3:1336
|
|
[java] 15-Jan-2008 10:21:39 org.apache.tuscany.sca.node.impl.SCADomainProxy
|
|
Impl createRuntime
|
|
[java] INFO: Domain management configured from file:/C:/simon/tuscany/relea
|
|
se/sca-r1.1-rc2/tuscany-sca-1.1-incubating-SNAPSHOT/lib/tuscany-sca-all-1.1-incu
|
|
bating-SNAPSHOT.jar
|
|
[java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
|
|
[java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
|
|
[java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
|
|
[java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
|
|
[java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
|
|
[java] 15-Jan-2008 10:21:48 org.apache.tuscany.sca.http.jetty.JettyServer a
|
|
ddServletMapping
|
|
[java] INFO: Added Servlet mapping: http://L3AW203:1336/SCADomainEventServi
|
|
ceProxyComponent
|
|
[java] 15-Jan-2008 10:21:48 org.apache.tuscany.sca.http.jetty.JettyServer a
|
|
ddServletMapping
|
|
[java] INFO: Added Servlet mapping: http://L3AW203:1336/SCADomainAPIService
|
|
ProxyComponent
|
|
[java] 15-Jan-2008 10:21:48 org.apache.tuscany.sca.http.jetty.JettyServer a
|
|
ddServletMapping
|
|
[java] INFO: Added Servlet mapping: http://L3AW203:1336/SCANodeManagerCompo
|
|
nent/SCANodeManagerService
|
|
[java] 15-Jan-2008 10:21:48 org.apache.tuscany.sca.http.jetty.JettyServer a
|
|
ddServletMapping
|
|
[java] INFO: Added Servlet mapping: http://L3AW203:1336/SCANodeManagerCompo
|
|
nent/ComponentManagerService/*
|
|
[java] 15-Jan-2008 10:21:48 org.apache.tuscany.sca.http.jetty.JettyServer a
|
|
ddServletMapping
|
|
[java] INFO: Added Servlet mapping: http://L3AW203:1336/SCANodeManagerCompo
|
|
nent/ComponentManagerService
|
|
[java] 15-Jan-2008 10:21:48 org.apache.tuscany.sca.http.jetty.JettyServer a
|
|
ddServletMapping
|
|
[java] INFO: Added Servlet mapping: http://L3AW203:1336/SCADomain/scaDomain
|
|
.js
|
|
[java] 15-Jan-2008 10:21:48 org.apache.tuscany.sca.node.impl.SCANodeImpl ac
|
|
tivateComposite
|
|
[java] INFO: Building composite: {http://myapp}myapp
|
|
[java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
|
|
[java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
|
|
[java] 15-Jan-2008 10:21:48 org.apache.tuscany.sca.node.impl.SCANodeImpl st
|
|
artComposite
|
|
[java] INFO: Starting composite: {http://myapp}myapp
|
|
[java] 15-Jan-2008 10:21:48 org.apache.tuscany.sca.http.jetty.JettyServer a
|
|
ddServletMapping
|
|
[java] INFO: Added Servlet mapping: http://L3AW203:1336/MyClientComponent/m
|
|
yService
|
|
[java] aClientMethod on thread Thread[main,5,main]
|
|
[java] aClientMethod return from someMethod on thread Thread[main,5,main]
|
|
[java] receiveResult on thread Thread[pool-1-thread-2,5,main]
|
|
[java] Result: -> someMethod -> receiveResult
|
|
[java] Closing the domain
|
|
[java] 15-Jan-2008 10:21:54 org.apache.tuscany.sca.node.impl.SCANodeImpl st
|
|
opComposite
|
|
[java] INFO: Stopping composite: {http://myapp}myapp
|
|
|
|
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. When using Maven you don't need to run the
|
|
callback-ws-service sample first as Maven does this for you. With Maven,
|
|
both client and server code run in the same JVM, which rather defeats the
|
|
purpose of this sample (to show a standalone SCA client), but it's good
|
|
enough for a unit test.
|
|
|
|
cd callback-ws-client
|
|
mvn
|
|
|
|
You should see the following output from the test phase.
|
|
|
|
-------------------------------------------------------
|
|
T E S T S
|
|
-------------------------------------------------------
|
|
Running myapp.CallbackClientTestCase
|
|
15-Jan-2008 10:17:46 org.apache.tuscany.sca.node.impl.SCADomainProxyImpl init
|
|
INFO: Domain will be started stand-alone as domain URL is not provided
|
|
15-Jan-2008 10:17:46 org.apache.tuscany.sca.domain.impl.SCADomainImpl registerNo
|
|
de
|
|
INFO: Registered node: http://L3AW203:1322 at endpoint http://L3AW203:1322
|
|
15-Jan-2008 10:17:46 org.apache.tuscany.sca.node.impl.SCADomainProxyImpl createR
|
|
untime
|
|
INFO: Domain management configured from file:/C:/Documents%20and%20Settings/slaw
|
|
s/.m2/repository/org/apache/tuscany/sca/tuscany-node-impl/1.1-incubating-SNAPSHO
|
|
T/tuscany-node-impl-1.1-incubating-SNAPSHOT.jar
|
|
15-Jan-2008 10:17:52 org.apache.catalina.core.StandardEngine start
|
|
INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
|
|
15-Jan-2008 10:17:53 org.apache.catalina.startup.ContextConfig defaultWebConfig
|
|
INFO: No default web.xml
|
|
15-Jan-2008 10:17:53 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd
|
|
15-Jan-2008 10:17:53 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_
|
|
1.dtd
|
|
15-Jan-2008 10:17:53 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_
|
|
2.dtd
|
|
15-Jan-2008 10:17:53 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_2_
|
|
0.xsd
|
|
15-Jan-2008 10:17:53 org.apache.catalina.startup.DigesterFactory register
|
|
WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xs
|
|
d
|
|
15-Jan-2008 10:17:53 org.apache.coyote.http11.Http11Protocol init
|
|
INFO: Initializing Coyote HTTP/1.1 on http-1322
|
|
15-Jan-2008 10:17:53 org.apache.coyote.http11.Http11Protocol start
|
|
INFO: Starting Coyote HTTP/1.1 on http-1322
|
|
15-Jan-2008 10:17:53 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1322/SCADomainEventServiceProxyCompo
|
|
nent
|
|
15-Jan-2008 10:17:53 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1322/SCADomainAPIServiceProxyCompone
|
|
nt
|
|
15-Jan-2008 10:17:53 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1322/SCANodeManagerComponent/SCANode
|
|
ManagerService
|
|
15-Jan-2008 10:17:53 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1322/SCANodeManagerComponent/Compone
|
|
ntManagerService/*
|
|
15-Jan-2008 10:17:53 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1322/SCANodeManagerComponent/Compone
|
|
ntManagerService
|
|
15-Jan-2008 10:17:53 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1322/SCADomain/scaDomain.js
|
|
15-Jan-2008 10:17:53 org.apache.tuscany.sca.node.impl.SCANodeImpl activateCompos
|
|
ite
|
|
INFO: Building composite: {http://callbackws}callbackws
|
|
15-Jan-2008 10:17:54 org.apache.tuscany.sca.node.impl.SCANodeImpl startComposite
|
|
|
|
INFO: Starting composite: {http://callbackws}callbackws
|
|
15-Jan-2008 10:17:54 org.apache.catalina.core.StandardEngine start
|
|
INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
|
|
15-Jan-2008 10:17:54 org.apache.catalina.startup.ContextConfig defaultWebConfig
|
|
INFO: No default web.xml
|
|
15-Jan-2008 10:17:54 org.apache.coyote.http11.Http11Protocol init
|
|
INFO: Initializing Coyote HTTP/1.1 on http-8086
|
|
15-Jan-2008 10:17:54 org.apache.coyote.http11.Http11Protocol start
|
|
INFO: Starting Coyote HTTP/1.1 on http-8086
|
|
15-Jan-2008 10:17:54 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:8086/MyServiceComponent
|
|
15-Jan-2008 10:17:54 org.apache.tuscany.sca.node.impl.SCADomainProxyImpl init
|
|
INFO: Domain will be started stand-alone as domain URL is not provided
|
|
15-Jan-2008 10:17:54 org.apache.tuscany.sca.domain.impl.SCADomainImpl registerNo
|
|
de
|
|
INFO: Registered node: http://L3AW203:1323 at endpoint http://L3AW203:1323
|
|
15-Jan-2008 10:17:54 org.apache.tuscany.sca.node.impl.SCADomainProxyImpl createR
|
|
untime
|
|
INFO: Domain management configured from file:/C:/Documents%20and%20Settings/slaw
|
|
s/.m2/repository/org/apache/tuscany/sca/tuscany-node-impl/1.1-incubating-SNAPSHO
|
|
T/tuscany-node-impl-1.1-incubating-SNAPSHOT.jar
|
|
15-Jan-2008 10:17:56 org.apache.catalina.core.StandardEngine start
|
|
INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
|
|
15-Jan-2008 10:17:56 org.apache.catalina.startup.ContextConfig defaultWebConfig
|
|
INFO: No default web.xml
|
|
15-Jan-2008 10:17:56 org.apache.coyote.http11.Http11Protocol init
|
|
INFO: Initializing Coyote HTTP/1.1 on http-1323
|
|
15-Jan-2008 10:17:56 org.apache.coyote.http11.Http11Protocol start
|
|
INFO: Starting Coyote HTTP/1.1 on http-1323
|
|
15-Jan-2008 10:17:56 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1323/SCADomainEventServiceProxyCompo
|
|
nent
|
|
15-Jan-2008 10:17:56 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1323/SCADomainAPIServiceProxyCompone
|
|
nt
|
|
15-Jan-2008 10:17:56 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1323/SCANodeManagerComponent/SCANode
|
|
ManagerService
|
|
15-Jan-2008 10:17:56 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1323/SCANodeManagerComponent/Compone
|
|
ntManagerService/*
|
|
15-Jan-2008 10:17:56 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1323/SCANodeManagerComponent/Compone
|
|
ntManagerService
|
|
15-Jan-2008 10:17:56 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1323/SCADomain/scaDomain.js
|
|
15-Jan-2008 10:17:56 org.apache.tuscany.sca.node.impl.SCANodeImpl activateCompos
|
|
ite
|
|
INFO: Building composite: {http://myapp}myapp
|
|
15-Jan-2008 10:17:57 org.apache.tuscany.sca.node.impl.SCANodeImpl startComposite
|
|
|
|
INFO: Starting composite: {http://myapp}myapp
|
|
15-Jan-2008 10:17:57 org.apache.tuscany.sca.http.tomcat.TomcatServer addServletM
|
|
apping
|
|
INFO: Added Servlet mapping: http://L3AW203:1323/MyClientComponent/myService
|
|
aClientMethod on thread Thread[main,5,main]
|
|
aClientMethod return from someMethod 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]
|
|
Sleeping ...
|
|
receiveResult on thread Thread[pool-2-thread-1,5,main]
|
|
Result: -> someMethod -> receiveResult
|
|
Closing the domain
|
|
15-Jan-2008 10:18:02 org.apache.tuscany.sca.node.impl.SCANodeImpl stopComposite
|
|
INFO: Stopping composite: {http://myapp}myapp
|
|
15-Jan-2008 10:18:03 org.apache.coyote.http11.Http11Protocol destroy
|
|
INFO: Stopping Coyote HTTP/1.1 on http-1323
|
|
15-Jan-2008 10:18:03 org.apache.tuscany.sca.node.impl.SCANodeImpl stopComposite
|
|
INFO: Stopping composite: {http://callbackws}callbackws
|
|
15-Jan-2008 10:18:03 org.apache.coyote.http11.Http11Protocol destroy
|
|
INFO: Stopping Coyote HTTP/1.1 on http-8086
|
|
15-Jan-2008 10:18:03 org.apache.coyote.http11.Http11Protocol destroy
|
|
INFO: Stopping Coyote HTTP/1.1 on http-1322
|
|
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 17.343 sec
|
|
|
|
This shows that the Junit test cases have run successfully.
|