From 074cc3cff2f00457318bd322a6bd58f65686ae5c Mon Sep 17 00:00:00 2001 From: nash Date: Tue, 16 Nov 2010 10:40:14 +0000 Subject: Tag for 1.6.1-RC2 git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1035578 13f79535-47bb-0310-9956-ffa450edef68 --- .../1.6.1-RC2/samples/holder-ws-service/README | 140 +++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 sca-java-1.x/tags/1.6.1-RC2/samples/holder-ws-service/README (limited to 'sca-java-1.x/tags/1.6.1-RC2/samples/holder-ws-service/README') diff --git a/sca-java-1.x/tags/1.6.1-RC2/samples/holder-ws-service/README b/sca-java-1.x/tags/1.6.1-RC2/samples/holder-ws-service/README new file mode 100644 index 0000000000..8c91a1b92d --- /dev/null +++ b/sca-java-1.x/tags/1.6.1-RC2/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 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 +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. -- cgit v1.2.3