Looks like you have added a holder-ws-service to pom.xml, but I don't see a sample app with that name. Is the sample suposed to be the helloworld-ws-service, instead of holder-ws-service ?
For now I'm commenting out the entry for the pom. On Wed, Jan 21, 2009 at 9:14 AM, <[email protected]> wrote: > Author: beckerdo > Date: Wed Jan 21 09:14:42 2009 > New Revision: 736344 > > URL: http://svn.apache.org/viewvc?rev=736344&view=rev > Log: > Tuscany 2768 - sample showing web services Holder support (input/output > parameters) > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/ > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/ > > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ > > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java > (with props) > > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java > (with props) > > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java > (with props) > > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java > (with props) > > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java > (with props) > > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java > (with props) > > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java > (with props) > > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java > (with props) > > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java > (with props) > > tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite > > tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl > tuscany/java/sca/samples/helloworld-ws-service/src/test/java/org/ > tuscany/java/sca/samples/helloworld-ws-service/src/test/java/org/example/ > Modified: > tuscany/branches/sca-java-1.x/samples/pom.xml > tuscany/java/sca/samples/helloworld-ws-service/README > tuscany/java/sca/samples/helloworld-ws-service/build.xml > tuscany/java/sca/samples/helloworld-ws-service/pom.xml > > Modified: tuscany/branches/sca-java-1.x/samples/pom.xml > URL: > http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/samples/pom.xml?rev=736344&r1=736343&r2=736344&view=diff > ============================================================================== > --- tuscany/branches/sca-java-1.x/samples/pom.xml (original) > +++ tuscany/branches/sca-java-1.x/samples/pom.xml Wed Jan 21 09:14:42 2009 > @@ -86,6 +86,7 @@ > <module>helloworld-ws-reference-secure</module> > <module>helloworld-ws-sdo</module> > <module>helloworld-ws-sdo-webapp</module> > + <module>holder-ws-service</module> > <module>implementation-composite</module> > <module>implementation-crud</module> > <module>implementation-crud-extension</module> > > Modified: tuscany/java/sca/samples/helloworld-ws-service/README > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/README?rev=736344&r1=736343&r2=736344&view=diff > ============================================================================== > --- tuscany/java/sca/samples/helloworld-ws-service/README (original) > +++ tuscany/java/sca/samples/helloworld-ws-service/README Wed Jan 21 09:14:42 > 2009 > @@ -1,6 +1,21 @@ > -Hello World Web Service Service Sample > +Holder Pattern Service Sample > ====================================== > -This sample demonstrates an SCA service that uses a web service binding. > +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 > @@ -13,43 +28,38 @@ > > OR if you don't have ant, on Windows do > > -java -cp > ..\..\lib\tuscany-sca-manifest.jar;target\sample-helloworld-ws-service.jar > helloworld.HelloWorldServer > +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-helloworld-ws-service.jar > helloworld.HelloWorldServer > - > -Now the server is started you can use the helloworld-ws-reference sample to > -exercise it. > +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. > > -helloworld-ws-service/ > +holder-ws-service/ > src/ > main/ > java/ > - helloworld/ > - HelloWorldService.java - interface description for > + org/ > + example/ > + orderservice > + *.java - Web service binding generated > from > HelloWorldServiceComponent > - HelloWorldImpl.java - component implementation > - HelloWorldServer.java - starts the SCA Runtime and > - deploys the helloworldws > - .composite and then waits for the > - service to be called via web > services > resources/ > wsdl/ > - helloworld.wsdl - the service description that > describes > + orderservice.wsdl - the service description that > describes > the exposed service > - helloworldws.composite - the SCA assembly for this sample > + orderws.composite - the SCA assembly that uses this > service > test/ > java/ > helloworld/ > - HelloWorldServerTestCase.java - JUnit test case > - helloworld-ws-service.png - a pictorial representation of the > - sample .composite file > + org/ > + example/ > + orderservice/ > + OrderServiceTestCase.java - JUnit test case > build.xml - the Ant build file > pom.xml - the Maven build file > > @@ -58,7 +68,7 @@ > With the binary distribution the sample can be built and run using Ant using > the > following commands > > -cd helloworld-ws-service > +cd holder-ws-service > ant compile > ant run > > @@ -77,7 +87,7 @@ > 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 helloworld-ws-reference > +cd holder-ws-reference > ant run > > Building And Running The Sample Using Maven > @@ -87,55 +97,44 @@ > ws-reference sample as Maven includes a simple ping test to make sure that > the > service is available > > -cd helloworld-ws-service > +cd holder-ws-service > mvn > > You should see the following output from the test phase. > - > ------------------------------------------------------- > T E S T S > ------------------------------------------------------- > -Running helloworld.HelloWorldServerTestCase > -14-Jan-2008 14:19:57 org.apache.catalina.core.StandardEngine start > -INFO: Starting Servlet Engine: Apache Tomcat/6.0.10 > -14-Jan-2008 14:19:57 org.apache.catalina.startup.ContextConfig > defaultWebConfig > -INFO: No default web.xml > -14-Jan-2008 14:19:57 org.apache.catalina.startup.DigesterFactory register > -WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd > -14-Jan-2008 14:19:57 org.apache.catalina.startup.DigesterFactory register > -WARNING: Could not get url for > /javax/servlet/jsp/resources/web-jsptaglibrary_1_ > -1.dtd > -14-Jan-2008 14:19:57 org.apache.catalina.startup.DigesterFactory register > -WARNING: Could not get url for > /javax/servlet/jsp/resources/web-jsptaglibrary_1_ > -2.dtd > -14-Jan-2008 14:19:57 org.apache.catalina.startup.DigesterFactory register > -WARNING: Could not get url for > /javax/servlet/jsp/resources/web-jsptaglibrary_2_ > -0.xsd > -14-Jan-2008 14:19:57 org.apache.catalina.startup.DigesterFactory register > -WARNING: Could not get url for > /javax/servlet/resources/j2ee_web_services_1_1.xs > -d > -14-Jan-2008 14:19:57 org.apache.coyote.http11.Http11Protocol init > -INFO: Initializing Coyote HTTP/1.1 on http-8085 > -14-Jan-2008 14:19:57 org.apache.coyote.http11.Http11Protocol start > -INFO: Starting Coyote HTTP/1.1 on http-8085 > -14-Jan-2008 14:19:57 org.apache.tuscany.sca.http.tomcat.TomcatServer > addServletM > -apping > -INFO: Added Servlet mapping: http://L3AW203:8085/HelloWorldService > -14-Jan-2008 14:19:57 org.apache.coyote.http11.Http11Protocol destroy > -INFO: Stopping Coyote HTTP/1.1 on http-8085 > -14-Jan-2008 14:19:58 org.apache.catalina.core.StandardEngine start > -INFO: Starting Servlet Engine: Apache Tomcat/6.0.10 > -14-Jan-2008 14:19:58 org.apache.catalina.startup.ContextConfig > defaultWebConfig > +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 > -14-Jan-2008 14:19:58 org.apache.coyote.http11.Http11Protocol init > +Jan 21, 2009 9:31:15 AM org.apache.coyote.http11.Http11Protocol init > INFO: Initializing Coyote HTTP/1.1 on http-8085 > -14-Jan-2008 14:19:58 org.apache.coyote.http11.Http11Protocol start > +Jan 21, 2009 9:31:15 AM org.apache.coyote.http11.Http11Protocol start > INFO: Starting Coyote HTTP/1.1 on http-8085 > -14-Jan-2008 14:19:58 org.apache.tuscany.sca.http.tomcat.TomcatServer > addServletM > -apping > -INFO: Added Servlet mapping: http://L3AW203:8085/HelloWorldService > -14-Jan-2008 14:19:59 org.apache.coyote.http11.Http11Protocol destroy > +- 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 > -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.75 sec > > -This shows that the Junit test cases have run successfully. > +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. > > Modified: tuscany/java/sca/samples/helloworld-ws-service/build.xml > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/build.xml?rev=736344&r1=736343&r2=736344&view=diff > ============================================================================== > --- tuscany/java/sca/samples/helloworld-ws-service/build.xml (original) > +++ tuscany/java/sca/samples/helloworld-ws-service/build.xml Wed Jan 21 > 09:14:42 2009 > @@ -16,9 +16,9 @@ > * specific language governing permissions and limitations > * under the License. > --> > -<project name="helloworld-ws-service" default="compile"> > - <property name="test.class" value="helloworld.HelloWorldServer" /> > - <property name="test.jar" value="sample-helloworld-ws-service.jar" > /> > +<project name="holder-ws-service" default="compile"> > + <property name="test.class" > value="org.example.orderservice.OrderServiceTestCase" /> > + <property name="test.jar" value="sample-holder-ws-service.jar" /> > > <target name="init"> > <mkdir dir="target/classes"/> > > Modified: tuscany/java/sca/samples/helloworld-ws-service/pom.xml > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/pom.xml?rev=736344&r1=736343&r2=736344&view=diff > ============================================================================== > --- tuscany/java/sca/samples/helloworld-ws-service/pom.xml (original) > +++ tuscany/java/sca/samples/helloworld-ws-service/pom.xml Wed Jan 21 > 09:14:42 2009 > @@ -22,11 +22,11 @@ > <parent> > <groupId>org.apache.tuscany.sca</groupId> > <artifactId>tuscany-sca</artifactId> > - <version>2.0-SNAPSHOT</version> > + <version>1.5-SNAPSHOT</version> > <relativePath>../../pom.xml</relativePath> > </parent> > - <artifactId>sample-helloworld-ws-service</artifactId> > - <name>Apache Tuscany SCA HelloWorld Web Service Sample</name> > + <artifactId>sample-holder-ws-service</artifactId> > + <name>Apache Tuscany SCA Holder Input/Output Web Service Sample</name> > > <repositories> > <repository> > @@ -39,28 +39,28 @@ > <dependency> > <groupId>org.apache.tuscany.sca</groupId> > <artifactId>tuscany-host-embedded</artifactId> > - <version>2.0-SNAPSHOT</version> > + <version>1.5-SNAPSHOT</version> > <scope>compile</scope> > </dependency> > > <dependency> > <groupId>org.apache.tuscany.sca</groupId> > <artifactId>tuscany-implementation-java-runtime</artifactId> > - <version>2.0-SNAPSHOT</version> > + <version>1.5-SNAPSHOT</version> > <scope>runtime</scope> > </dependency> > > <dependency> > <groupId>org.apache.tuscany.sca</groupId> > <artifactId>tuscany-binding-ws-axis2</artifactId> > - <version>2.0-SNAPSHOT</version> > + <version>1.5-SNAPSHOT</version> > <scope>runtime</scope> > </dependency> > > <dependency> > <groupId>org.apache.tuscany.sca</groupId> > <artifactId>tuscany-host-tomcat</artifactId> > - <version>2.0-SNAPSHOT</version> > + <version>1.5-SNAPSHOT</version> > <scope>runtime</scope> > </dependency> > > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,56 @@ > + > +package org.example.orderservice; > + > +import javax.xml.bind.annotation.XmlRegistry; > + > + > +/** > + * This object contains factory methods for each > + * Java content interface and Java element interface > + * generated in the org.example.orderservice package. > + * <p>An ObjectFactory allows you to programatically > + * construct new instances of the Java representation > + * for XML content. The Java representation of XML > + * content can consist of schema derived interfaces > + * and classes representing the binding of schema > + * type definitions, element declarations and model > + * groups. Factory methods for each of these are > + * provided in this class. > + * > + */ > +...@xmlregistry > +public class ObjectFactory { > + > + > + /** > + * Create a new ObjectFactory that can be used to create new instances > of schema derived classes for package: org.example.orderservice > + * > + */ > + public ObjectFactory() { > + } > + > + /** > + * Create an instance of {...@link ReviewOrderResponse } > + * > + */ > + public ReviewOrderResponse createReviewOrderResponse() { > + return new ReviewOrderResponse(); > + } > + > + /** > + * Create an instance of {...@link Order } > + * > + */ > + public Order createOrder() { > + return new Order(); > + } > + > + /** > + * Create an instance of {...@link ReviewOrder } > + * > + */ > + public ReviewOrder createReviewOrder() { > + return new ReviewOrder(); > + } > + > +} > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,129 @@ > + > +package org.example.orderservice; > + > +import javax.xml.bind.annotation.XmlAccessType; > +import javax.xml.bind.annotation.XmlAccessorType; > +import javax.xml.bind.annotation.XmlType; > + > + > +/** > + * <p>Java class for order complex type. > + * > + * <p>The following schema fragment specifies the expected content contained > within this class. > + * > + * <pre> > + * <complexType name="order"> > + * <complexContent> > + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> > + * <sequence> > + * <element name="customerId" > type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> > + * <element name="status" > type="{http://www.example.org/OrderService/}status" minOccurs="0"/> > + * <element name="total" > type="{http://www.w3.org/2001/XMLSchema}double"/> > + * <element name="orderId" > type="{http://www.w3.org/2001/XMLSchema}int"/> > + * </sequence> > + * </restriction> > + * </complexContent> > + * </complexType> > + * </pre> > + * > + * > + */ > +...@xmlaccessortype(XmlAccessType.FIELD) > +...@xmltype(name = "order", propOrder = { > + "customerId", > + "status", > + "total", > + "orderId" > +}) > +public class Order { > + > + protected String customerId; > + protected Status status; > + protected double total; > + protected int orderId; > + > + /** > + * Gets the value of the customerId property. > + * > + * @return > + * possible object is > + * {...@link String } > + * > + */ > + public String getCustomerId() { > + return customerId; > + } > + > + /** > + * Sets the value of the customerId property. > + * > + * @param value > + * allowed object is > + * {...@link String } > + * > + */ > + public void setCustomerId(String value) { > + this.customerId = value; > + } > + > + /** > + * Gets the value of the status property. > + * > + * @return > + * possible object is > + * {...@link Status } > + * > + */ > + public Status getStatus() { > + return status; > + } > + > + /** > + * Sets the value of the status property. > + * > + * @param value > + * allowed object is > + * {...@link Status } > + * > + */ > + public void setStatus(Status value) { > + this.status = value; > + } > + > + /** > + * Gets the value of the total property. > + * > + */ > + public double getTotal() { > + return total; > + } > + > + /** > + * Sets the value of the total property. > + * > + */ > + public void setTotal(double value) { > + this.total = value; > + } > + > + /** > + * Gets the value of the orderId property. > + * > + */ > + public int getOrderId() { > + return orderId; > + } > + > + /** > + * Sets the value of the orderId property. > + * > + */ > + public void setOrderId(int value) { > + this.orderId = value; > + } > + > + // Added manually from wsimport generated class to improve debugging. > + public String toString() { > + return "Order[customerId=" + customerId + ",orderId=" + orderId + > ",total=" + total + ",status=" + status.value() + "]"; > + } > +} > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,37 @@ > + > +package org.example.orderservice; > + > +import javax.jws.WebMethod; > +import javax.jws.WebParam; > +import javax.jws.WebService; > +import javax.xml.bind.annotation.XmlSeeAlso; > +import javax.xml.ws.Holder; > +import javax.xml.ws.RequestWrapper; > +import javax.xml.ws.ResponseWrapper; > + > + > +/** > + * This class was generated by the JAX-WS RI. > + * JAX-WS RI 2.1.1 in JDK 6 > + * Generated source version: 2.1 > + * > + */ > +...@webservice(name = "OrderService", targetNamespace = > "http://www.example.org/OrderService/") > +...@xmlseealso({ > + ObjectFactory.class > +}) > +public interface OrderService { > + > + > + /** > + * > + * @param myData > + */ > + @WebMethod(action = "http://www.example.org/OrderService/reviewOrder") > + @RequestWrapper(localName = "reviewOrder", targetNamespace = > "http://www.example.org/OrderService/", className = > "org.example.orderservice.ReviewOrder") > + @ResponseWrapper(localName = "reviewOrderResponse", targetNamespace = > "http://www.example.org/OrderService/", className = > "org.example.orderservice.ReviewOrderResponse") > + public void reviewOrder( > + @WebParam(name = "myData", targetNamespace = "", mode = > WebParam.Mode.INOUT) > + Holder<Order> myData); > + > +} > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,65 @@ > +/* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + */ > +package org.example.orderservice; > + > +// import org.osoa.sca.annotations.Service; > +import java.util.Random; > + > +import javax.jws.WebMethod; > +import javax.jws.WebParam; > +import javax.xml.ws.Holder; > +import javax.xml.ws.RequestWrapper; > +import javax.xml.ws.ResponseWrapper; > + > +/** > + * This class implements the OrderService service. > + */ > +// @Service(OrderService.class) > +public class OrderServiceImpl implements OrderService { > + > + /** This dummy implementation approves or rejects orders: > + * < 100 - always approved. > + * 100-1100 - randomly approved. Probability = (1100 - amount)/10 > + * >1100 - always rejected. > + */ > + // public Order reviewOrder(Order order) { > + @WebMethod(action = "http://www.example.org/OrderService/reviewOrder") > + @RequestWrapper(localName = "reviewOrder", targetNamespace = > "http://www.example.org/OrderService/", className = > "org.example.orderservice.ReviewOrder") > + @ResponseWrapper(localName = "reviewOrderResponse", targetNamespace = > "http://www.example.org/OrderService/", className = > "org.example.orderservice.ReviewOrderResponse") > + public void reviewOrder( > + @WebParam(name = "myData", targetNamespace = "", mode = > WebParam.Mode.INOUT) > + Holder<Order> myData) { > + Order order = myData.value; > + double total = order.getTotal(); > + if ( total < 100.0 ) { > + order.setStatus( Status.APPROVED ); > + } else if ( total > 1100.0 ) { > + order.setStatus( Status.REJECTED ); > + } else { > + int probability = (int) ((-100.0 + total) / 10.0); > + Random approver = new Random(); > + if ( approver.nextInt( 100 ) < probability ) > + order.setStatus( Status.APPROVED ); > + else > + order.setStatus( Status.REJECTED ); > + } > + System.out.println( ">>> OrderService.reviewOrder return=" + order ); > + // return order; > + } > +} > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,66 @@ > + > +package org.example.orderservice; > + > +import java.net.MalformedURLException; > +import java.net.URL; > +import javax.xml.namespace.QName; > +import javax.xml.ws.Service; > +import javax.xml.ws.WebEndpoint; > +import javax.xml.ws.WebServiceClient; > +import javax.xml.ws.WebServiceFeature; > + > + > +/** > + * This class was generated by the JAX-WS RI. > + * JAX-WS RI 2.1.1 in JDK 6 > + * Generated source version: 2.1 > + * > + */ > +...@webserviceclient(name = "OrderService", targetNamespace = > "http://www.example.org/OrderService/", wsdlLocation = > "META-INF/sca-deployables/orderservice.wsdl") > +public class OrderService_Service > + extends Service > +{ > + > + private final static URL ORDERSERVICE_WSDL_LOCATION; > + > + static { > + URL url = null; > + try { > + url = new URL("META-INF/sca-deployables/orderservice.wsdl"); > + } catch (MalformedURLException e) { > + e.printStackTrace(); > + } > + ORDERSERVICE_WSDL_LOCATION = url; > + } > + > + public OrderService_Service(URL wsdlLocation, QName serviceName) { > + super(wsdlLocation, serviceName); > + } > + > + public OrderService_Service() { > + super(ORDERSERVICE_WSDL_LOCATION, new > QName("http://www.example.org/OrderService/", "OrderService")); > + } > + > + /** > + * > + * @return > + * returns OrderService > + */ > + @WebEndpoint(name = "OrderServiceSOAP") > + public OrderService getOrderServiceSOAP() { > + return (OrderService)super.getPort(new > QName("http://www.example.org/OrderService/", "OrderServiceSOAP"), > OrderService.class); > + } > + > + /** > + * > + * @param features > + * A list of {...@link javax.xml.ws.WebServiceFeature} to configure > on the proxy. Supported features not in the <code>features</code> parameter > will have their default values. > + * @return > + * returns OrderService > + */ > + @WebEndpoint(name = "OrderServiceSOAP") > + public OrderService getOrderServiceSOAP(WebServiceFeature... features) { > + return (OrderService)super.getPort(new > QName("http://www.example.org/OrderService/", "OrderServiceSOAP"), > OrderService.class, features); > + } > + > +} > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,64 @@ > + > +package org.example.orderservice; > + > +import javax.xml.bind.annotation.XmlAccessType; > +import javax.xml.bind.annotation.XmlAccessorType; > +import javax.xml.bind.annotation.XmlElement; > +import javax.xml.bind.annotation.XmlRootElement; > +import javax.xml.bind.annotation.XmlType; > + > + > +/** > + * <p>Java class for anonymous complex type. > + * > + * <p>The following schema fragment specifies the expected content contained > within this class. > + * > + * <pre> > + * <complexType> > + * <complexContent> > + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> > + * <sequence> > + * <element name="myData" > type="{http://www.example.org/OrderService/}order"/> > + * </sequence> > + * </restriction> > + * </complexContent> > + * </complexType> > + * </pre> > + * > + * > + */ > +...@xmlaccessortype(XmlAccessType.FIELD) > +...@xmltype(name = "", propOrder = { > + "myData" > +}) > +...@xmlrootelement(name = "reviewOrder") > +public class ReviewOrder { > + > + @XmlElement(required = true) > + protected Order myData; > + > + /** > + * Gets the value of the myData property. > + * > + * @return > + * possible object is > + * {...@link Order } > + * > + */ > + public Order getMyData() { > + return myData; > + } > + > + /** > + * Sets the value of the myData property. > + * > + * @param value > + * allowed object is > + * {...@link Order } > + * > + */ > + public void setMyData(Order value) { > + this.myData = value; > + } > + > +} > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,64 @@ > + > +package org.example.orderservice; > + > +import javax.xml.bind.annotation.XmlAccessType; > +import javax.xml.bind.annotation.XmlAccessorType; > +import javax.xml.bind.annotation.XmlElement; > +import javax.xml.bind.annotation.XmlRootElement; > +import javax.xml.bind.annotation.XmlType; > + > + > +/** > + * <p>Java class for anonymous complex type. > + * > + * <p>The following schema fragment specifies the expected content contained > within this class. > + * > + * <pre> > + * <complexType> > + * <complexContent> > + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> > + * <sequence> > + * <element name="myData" > type="{http://www.example.org/OrderService/}order"/> > + * </sequence> > + * </restriction> > + * </complexContent> > + * </complexType> > + * </pre> > + * > + * > + */ > +...@xmlaccessortype(XmlAccessType.FIELD) > +...@xmltype(name = "", propOrder = { > + "myData" > +}) > +...@xmlrootelement(name = "reviewOrderResponse") > +public class ReviewOrderResponse { > + > + @XmlElement(required = true) > + protected Order myData; > + > + /** > + * Gets the value of the myData property. > + * > + * @return > + * possible object is > + * {...@link Order } > + * > + */ > + public Order getMyData() { > + return myData; > + } > + > + /** > + * Sets the value of the myData property. > + * > + * @param value > + * allowed object is > + * {...@link Order } > + * > + */ > + public void setMyData(Order value) { > + this.myData = value; > + } > + > +} > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,57 @@ > + > +package org.example.orderservice; > + > +import javax.xml.bind.annotation.XmlEnum; > +import javax.xml.bind.annotation.XmlEnumValue; > +import javax.xml.bind.annotation.XmlType; > + > + > +/** > + * <p>Java class for status. > + * > + * <p>The following schema fragment specifies the expected content contained > within this class. > + * <p> > + * <pre> > + * <simpleType name="status"> > + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> > + * <enumeration value="Created"/> > + * <enumeration value="Submitted"/> > + * <enumeration value="Approved"/> > + * <enumeration value="Rejected"/> > + * </restriction> > + * </simpleType> > + * </pre> > + * > + */ > +...@xmltype(name = "status") > +...@xmlenum > +public enum Status { > + > + @XmlEnumValue("Created") > + CREATED("Created"), > + @XmlEnumValue("Submitted") > + SUBMITTED("Submitted"), > + @XmlEnumValue("Approved") > + APPROVED("Approved"), > + @XmlEnumValue("Rejected") > + REJECTED("Rejected"); > + private final String value; > + > + Status(String v) { > + value = v; > + } > + > + public String value() { > + return value; > + } > + > + public static Status fromValue(String v) { > + for (Status c: Status.values()) { > + if (c.value.equals(v)) { > + return c; > + } > + } > + throw new IllegalArgumentException(v); > + } > + > +} > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,2 @@ > [email protected](namespace = > "http://www.example.org/OrderService/") > +package org.example.orderservice; > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > tuscany/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,33 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<!-- > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > +--> > +<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" > + targetNamespace="http://orderservice" > + xmlns:hw="http://orderservice" > + name="orderws"> > + > + <component name="OrderServiceComponent"> > + <implementation.java > class="org.example.orderservice.OrderServiceImpl" /> > + <service name="OrderService"> > + <interface.wsdl > interface="http://www.example.org/OrderService/#wsdl.interface(OrderService)" > /> > + <binding.ws uri="http://localhost:8085/OrderService"/> > + </service> > + </component> > + > +</composite> > > Added: > tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl > URL: > http://svn.apache.org/viewvc/tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl?rev=736344&view=auto > ============================================================================== > --- > tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl > (added) > +++ > tuscany/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl > Wed Jan 21 09:14:42 2009 > @@ -0,0 +1,71 @@ > +<?xml version="1.0" encoding="UTF-8" standalone="no"?> > +<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:tns="http://www.example.org/OrderService/" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="OrderService" > targetNamespace="http://www.example.org/OrderService/"> > + <wsdl:types> > + <xsd:schema targetNamespace="http://www.example.org/OrderService/"> > + <xsd:complexType name="order"> > + <xsd:sequence> > + <xsd:element name="customerId" type="xsd:string" > minOccurs="0" /> > + <xsd:element name="status" type="tns:status" > minOccurs="0" /> > + <xsd:element name="total" type="xsd:double" /> > + <xsd:element name="orderId" type="xsd:int" /> > + </xsd:sequence> > + </xsd:complexType> > + > + <xsd:simpleType name="status"> > + <xsd:restriction base="xsd:string"> > + <xsd:enumeration value="Created" /> > + <xsd:enumeration value="Submitted" /> > + <xsd:enumeration value="Approved" /> > + <xsd:enumeration value="Rejected" /> > + </xsd:restriction> > + </xsd:simpleType> > + > + <xsd:element name="reviewOrder"> > + <xsd:complexType> > + <xsd:sequence> > + <xsd:element name="myData" type="tns:order" > + minOccurs="1" maxOccurs="1" /> > + </xsd:sequence> > + </xsd:complexType> > + </xsd:element> > + <xsd:element name="reviewOrderResponse"> > + <xsd:complexType> > + <xsd:sequence> > + <xsd:element name="myData" type="tns:order" > + minOccurs="1" maxOccurs="1" /> > + </xsd:sequence> > + </xsd:complexType> > + </xsd:element> > + > + </xsd:schema> > + </wsdl:types> > + <wsdl:message name="reviewOrderRequest"> > + <wsdl:part element="tns:reviewOrder" name="myParameters"/> > + </wsdl:message> > + <wsdl:message name="reviewOrderResponse"> > + <wsdl:part element="tns:reviewOrderResponse" name="myResult"/> > + </wsdl:message> > + <wsdl:portType name="OrderService"> > + <wsdl:operation name="reviewOrder"> > + <wsdl:input message="tns:reviewOrderRequest"/> > + <wsdl:output message="tns:reviewOrderResponse"/> > + </wsdl:operation> > + </wsdl:portType> > + <wsdl:binding name="OrderServiceSOAP" type="tns:OrderService"> > + <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > + <wsdl:operation name="reviewOrder"> > + <soap:operation > soapAction="http://www.example.org/OrderService/reviewOrder"/> > + <wsdl:input> > + <soap:body use="literal"/> > + </wsdl:input> > + <wsdl:output> > + <soap:body use="literal"/> > + </wsdl:output> > + </wsdl:operation> > + </wsdl:binding> > + <wsdl:service name="OrderService"> > + <wsdl:port binding="tns:OrderServiceSOAP" name="OrderServiceSOAP"> > + <soap:address location="http://www.example.org/"/> > + </wsdl:port> > + </wsdl:service> > +</wsdl:definitions> > > > -- Luciano Resende Apache Tuscany, Apache PhotArk http://people.apache.org/~lresende http://lresende.blogspot.com/
