From 5d291452ae5a99fbb4e32cb4342b39cab18014b5 Mon Sep 17 00:00:00 2001 From: beckerdo Date: Wed, 21 Jan 2009 17:14:42 +0000 Subject: Tuscany 2768 - sample showing web services Holder support (input/output parameters) git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@736344 13f79535-47bb-0310-9956-ffa450edef68 --- java/sca/samples/helloworld-ws-service/README | 125 ++++++++++---------- java/sca/samples/helloworld-ws-service/build.xml | 6 +- java/sca/samples/helloworld-ws-service/pom.xml | 14 +-- .../org/example/orderservice/ObjectFactory.java | 56 +++++++++ .../main/java/org/example/orderservice/Order.java | 129 +++++++++++++++++++++ .../org/example/orderservice/OrderService.java | 37 ++++++ .../org/example/orderservice/OrderServiceImpl.java | 65 +++++++++++ .../example/orderservice/OrderService_Service.java | 66 +++++++++++ .../java/org/example/orderservice/ReviewOrder.java | 64 ++++++++++ .../example/orderservice/ReviewOrderResponse.java | 64 ++++++++++ .../main/java/org/example/orderservice/Status.java | 57 +++++++++ .../org/example/orderservice/package-info.java | 2 + .../META-INF/sca-deployables/orderws.composite | 33 ++++++ .../src/main/resources/wsdl/orderservice.wsdl | 71 ++++++++++++ 14 files changed, 716 insertions(+), 73 deletions(-) create mode 100644 java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java create mode 100644 java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java create mode 100644 java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java create mode 100644 java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java create mode 100644 java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java create mode 100644 java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java create mode 100644 java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java create mode 100644 java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java create mode 100644 java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java create mode 100644 java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite create mode 100644 java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl (limited to 'java/sca') diff --git a/java/sca/samples/helloworld-ws-service/README b/java/sca/samples/helloworld-ws-service/README index 44dc7ab4e8..72417d3160 100644 --- a/java/sca/samples/helloworld-ws-service/README +++ b/java/sca/samples/helloworld-ws-service/README @@ -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 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 @@ ant run 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 @@ 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 helloworld-ws-service +cd holder-ws-service ant compile ant run @@ -77,7 +87,7 @@ 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 helloworld-ws-reference +cd holder-ws-reference ant run Building And Running The Sample Using Maven @@ -87,55 +97,44 @@ 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 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 +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. diff --git a/java/sca/samples/helloworld-ws-service/build.xml b/java/sca/samples/helloworld-ws-service/build.xml index 46678febc3..7a59628c7b 100644 --- a/java/sca/samples/helloworld-ws-service/build.xml +++ b/java/sca/samples/helloworld-ws-service/build.xml @@ -16,9 +16,9 @@ * specific language governing permissions and limitations * under the License. --> - - - + + + diff --git a/java/sca/samples/helloworld-ws-service/pom.xml b/java/sca/samples/helloworld-ws-service/pom.xml index dbfe915e58..a895191917 100644 --- a/java/sca/samples/helloworld-ws-service/pom.xml +++ b/java/sca/samples/helloworld-ws-service/pom.xml @@ -22,11 +22,11 @@ org.apache.tuscany.sca tuscany-sca - 2.0-SNAPSHOT + 1.5-SNAPSHOT ../../pom.xml - sample-helloworld-ws-service - Apache Tuscany SCA HelloWorld Web Service Sample + sample-holder-ws-service + Apache Tuscany SCA Holder Input/Output Web Service Sample @@ -39,28 +39,28 @@ org.apache.tuscany.sca tuscany-host-embedded - 2.0-SNAPSHOT + 1.5-SNAPSHOT compile org.apache.tuscany.sca tuscany-implementation-java-runtime - 2.0-SNAPSHOT + 1.5-SNAPSHOT runtime org.apache.tuscany.sca tuscany-binding-ws-axis2 - 2.0-SNAPSHOT + 1.5-SNAPSHOT runtime org.apache.tuscany.sca tuscany-host-tomcat - 2.0-SNAPSHOT + 1.5-SNAPSHOT runtime diff --git a/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java new file mode 100644 index 0000000000..e472b2bada --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ObjectFactory.java @@ -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. + *

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(); + } + +} diff --git a/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java new file mode 100644 index 0000000000..7508887a7d --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Order.java @@ -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; + + +/** + *

Java class for order complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <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>
+ * 
+ * + * + */ +@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() + "]"; + } +} diff --git a/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java new file mode 100644 index 0000000000..a11d733cc9 --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService.java @@ -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 myData); + +} diff --git a/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java new file mode 100644 index 0000000000..e4ae074437 --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderServiceImpl.java @@ -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 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; + } +} diff --git a/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java new file mode 100644 index 0000000000..9c8ff711ea --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/OrderService_Service.java @@ -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 features 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); + } + +} diff --git a/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java new file mode 100644 index 0000000000..9e7192a0d0 --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrder.java @@ -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; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <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>
+ * 
+ * + * + */ +@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; + } + +} diff --git a/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java new file mode 100644 index 0000000000..90dbc3f25e --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/ReviewOrderResponse.java @@ -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; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <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>
+ * 
+ * + * + */ +@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; + } + +} diff --git a/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java new file mode 100644 index 0000000000..73a1b5c45e --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/Status.java @@ -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; + + +/** + *

Java class for status. + * + *

The following schema fragment specifies the expected content contained within this class. + *

+ *

+ * <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>
+ * 
+ * + */ +@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); + } + +} diff --git a/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java new file mode 100644 index 0000000000..64c056b7fb --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/java/org/example/orderservice/package-info.java @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.example.org/OrderService/") +package org.example.orderservice; diff --git a/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite b/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite new file mode 100644 index 0000000000..d34891d1af --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/resources/META-INF/sca-deployables/orderws.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl b/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl new file mode 100644 index 0000000000..fd8ef74403 --- /dev/null +++ b/java/sca/samples/helloworld-ws-service/src/main/resources/wsdl/orderservice.wsdl @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3