summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/branches/sca-java-1.5.2/samples/holder-ws-service/README
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/branches/sca-java-1.5.2/samples/holder-ws-service/README')
-rw-r--r--sca-java-1.x/branches/sca-java-1.5.2/samples/holder-ws-service/README140
1 files changed, 140 insertions, 0 deletions
diff --git a/sca-java-1.x/branches/sca-java-1.5.2/samples/holder-ws-service/README b/sca-java-1.x/branches/sca-java-1.5.2/samples/holder-ws-service/README
new file mode 100644
index 0000000000..8c91a1b92d
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-1.5.2/samples/holder-ws-service/README
@@ -0,0 +1,140 @@
+Holder Pattern Service Sample
+======================================
+This sample demonstrates an SCA service that uses a web service binding. The
+web service binding has been generated from a given WSDL file:
+ src/main/resources/wsdl/orderservice.wsdl
+The generated binding has been placed in src/main/java/org/examle/orderservice
+and was generated via the JDK tool wsimport and the command:
+ wsimport -d orderservice -keep orderservice.wsdl
+
+The interesting feature of this sample is that the generated service interface,
+OrderService, contains a method with the signature:
+ public void reviewOrder(
+ @WebParam(name = "myData", targetNamespace = "", mode = WebParam.Mode.INOUT)
+ javax.xml.ws.Holder<Order> orderData);
+The orderData parameter is an input/output parameter that is provided by the caller,
+updated by the service, and returned to the caller. The business object is updated
+in place, a common pattern in web services, and not returned as a response. Tuscany
+can handle limited instances of this pattern.
+
+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-holder-ws-service.jar org.example.orderservice.OrderServiceTestCase
+
+and on *nix do
+
+java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-holder-ws-service.jar org.example.orderservice.OrderServiceTestCase
+
+Sample Overview
+---------------
+The sample provides a single component that is wired to a service with a
+web service binding.
+
+holder-ws-service/
+ src/
+ main/
+ java/
+ org/
+ example/
+ orderservice
+ *.java - Web service binding generated from
+ HelloWorldServiceComponent
+ resources/
+ wsdl/
+ orderservice.wsdl - the service description that describes
+ the exposed service
+ orderws.composite - the SCA assembly that uses this service
+ test/
+ java/
+ helloworld/
+ org/
+ example/
+ orderservice/
+ OrderServiceTestCase.java - JUnit test case
+ 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 using the
+following commands
+
+cd holder-ws-service
+ant compile
+ant run
+
+You should see the following output from the run target.
+
+run:
+ [java] 14-Jan-2008 14:18:47 org.apache.tuscany.sca.http.jetty.JettyServer a
+ddServletMapping
+ [java] INFO: Added Servlet mapping: http://L3AW203:8085/HelloWorldService
+ [java] HelloWorld server started (press enter to shutdown)
+
+As this point the SCA service is exposed as a web service by a web server
+started automatically by the SCA runtime. To stop the server just press
+enter.
+
+To exercise the service run up the helloworld-ws-reference sample. Take a look at
+the README in that sample and you will see you need the following commands
+
+cd holder-ws-reference
+ant run
+
+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 helloworld-
+ws-reference sample as Maven includes a simple ping test to make sure that the
+service is available
+
+cd holder-ws-service
+mvn
+
+You should see the following output from the test phase.
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.example.orderservice.OrderServiceTestCase
+Jan 21, 2009 9:31:11 AM org.apache.tuscany.sca.node.impl.NodeImpl <init>
+INFO: Creating node: META-INF/sca-deployables/orderws.composite
+Jan 21, 2009 9:31:13 AM org.apache.tuscany.sca.node.impl.NodeImpl configureNode
+INFO: Loading contribution: file:/E:/t/branches/sca-java-1.x/samples/holder-ws-webservice/target/classes/
+Jan 21, 2009 9:31:14 AM org.apache.tuscany.sca.node.impl.NodeImpl configureNode
+INFO: Loading composite: file:/E:/t/branches/sca-java-1.x/samples/holder-ws-webservice/target/classes/META-INF/sca-deployables/orderws.composite
+Jan 21, 2009 9:31:14 AM org.apache.tuscany.sca.node.impl.NodeImpl start
+INFO: Starting node: META-INF/sca-deployables/orderws.composite
+- No JMS connection factories are defined.Will not listen for any JMS messages
+Jan 21, 2009 9:31:15 AM org.apache.catalina.core.StandardEngine start
+INFO: Starting Servlet Engine: Apache Tomcat/6.0.14
+Jan 21, 2009 9:31:15 AM org.apache.catalina.startup.ContextConfig defaultWebConfig
+INFO: No default web.xml
+Jan 21, 2009 9:31:15 AM org.apache.coyote.http11.Http11Protocol init
+INFO: Initializing Coyote HTTP/1.1 on http-8085
+Jan 21, 2009 9:31:15 AM org.apache.coyote.http11.Http11Protocol start
+INFO: Starting Coyote HTTP/1.1 on http-8085
+- No JMS connection factories are defined.Will not listen for any JMS messages
+Jan 21, 2009 9:31:15 AM org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping
+INFO: Added Servlet mapping: http://T602010:8085/OrderService
+>>> Order submitted=Order[customerId=cust1234,orderId=0,total=50.0,status=Created]
+>>> OrderService.reviewOrder return=Order[customerId=cust1234,orderId=0,total=50.0,status=Approved]
+>>> Order returned=Order[customerId=cust1234,orderId=0,total=50.0,status=Approved]
+Jan 21, 2009 9:31:16 AM org.apache.tuscany.sca.node.impl.NodeImpl stop
+INFO: Stopping node: META-INF/sca-deployables/orderws.composite
+Jan 21, 2009 9:31:17 AM org.apache.tuscany.sca.http.tomcat.TomcatServer removeServletMapping
+INFO: Removed Servlet mapping: http://T602010:8085/OrderService
+Jan 21, 2009 9:31:17 AM org.apache.coyote.http11.Http11Protocol destroy
+INFO: Stopping Coyote HTTP/1.1 on http-8085
+
+Note the console output with ">>>" prefix. This shows that an order was submitted in
+the "Created" state, handled by the OrderService reviewOrder method, and returned in
+the "Approved" state. This shows that the Junit test cases have run successfully.