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