[jboss-svn-commits] JBL Code SVN: r15059 - in labs/jbosstm/workspace/adinn: provider and 12 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 12 13:00:57 EDT 2007


Author: adinn
Date: 2007-09-12 13:00:57 -0400 (Wed, 12 Sep 2007)
New Revision: 15059

Added:
   labs/jbosstm/workspace/adinn/provider/
   labs/jbosstm/workspace/adinn/provider/dd/
   labs/jbosstm/workspace/adinn/provider/dd/provider-web-app.xml
   labs/jbosstm/workspace/adinn/provider/dd/wsdl/
   labs/jbosstm/workspace/adinn/provider/dd/wsdl/Provider.wsdl
   labs/jbosstm/workspace/adinn/provider/src/
   labs/jbosstm/workspace/adinn/provider/src/org/
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/ObjectFactory.java
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/Provider.java
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/ProviderSoapService.java
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/SayHi.java
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/SayHiResponse.java
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/client/
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/client/ProviderClient.java
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/common/
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/common/ProviderConstants.java
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/package-info.java
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/services/
   labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/services/ProviderImpl.java
   labs/jbosstm/workspace/adinn/provider/web/
   labs/jbosstm/workspace/adinn/provider/web/index.jsp
Log:
test which uses a simple WebServiceProvider

Added: labs/jbosstm/workspace/adinn/provider/dd/provider-web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/provider/dd/provider-web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/dd/provider-web-app.xml	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,71 @@
+<?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.
+-->
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+    <display-name>Provider Test</display-name>
+    <description>test of javax.xml.ws.Provider API</description>
+
+    <!-- the client and server are both exposed via servlets. because
+         of a bug in how the AS loads files from war/ear packages we
+         implement them both in the same war file -->
+
+    <!-- the provider service -->
+    <servlet>
+        <servlet-name>ProviderTest</servlet-name>
+        <display-name>ProviderTest</display-name>
+        <description>Provider Test Endpoint</description>
+        <servlet-class>org.jboss.xts.test.provider.services.ProviderImpl</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+   <!-- the provider client service -->
+    <servlet>
+        <servlet-name>ProviderTestClient</servlet-name>
+        <display-name>ProviderTestClient</display-name>
+        <description>Provider Test Client Endpoint</description>
+        <servlet-class>org.jboss.xts.test.provider.client.ProviderClient</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+   <!-- the provider service mapping -->
+    <servlet-mapping>
+        <servlet-name>ProviderTest</servlet-name>
+	<!-- get round bug in WS backwards compatibility which eats
+	     the leading /provider string
+	<url-pattern>/providerservice/*</url-pattern>
+	-->
+	<url-pattern>/service/*</url-pattern>
+    </servlet-mapping>
+
+   <!-- the provider client service mapping -->
+    <servlet-mapping>
+        <servlet-name>ProviderTestClient</servlet-name>
+	<!-- get round bug in WS backwards compatibility which eats
+	     the leading /provider string
+        <url-pattern>/providerclient</url-pattern>
+	-->
+        <url-pattern>/client</url-pattern>
+    </servlet-mapping>
+
+    <session-config>
+        <session-timeout>60</session-timeout>
+    </session-config>
+</web-app>

Added: labs/jbosstm/workspace/adinn/provider/dd/wsdl/Provider.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/provider/dd/wsdl/Provider.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/dd/wsdl/Provider.wsdl	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	Simple echo service to test use of javax.xml.ws.Provider API
+-->
+<wsdl:definitions name="Provider" targetNamespace="http://xts.jboss.org/test/provider/" 
+    xmlns="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    xmlns:tns="http://xts.jboss.org/test/provider/"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+    <wsdl:types>
+        <schema targetNamespace="http://xts.jboss.org/test/provider/" 
+            xmlns="http://www.w3.org/2001/XMLSchema"
+	    xmlns:tns="http://xts.jboss.org/test/provider/"
+            elementFormDefault="qualified">
+
+            <element name="sayHi">
+                <complexType>
+                    <sequence>
+		        <element name="requestType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+
+            <element name="sayHiResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+	</schema>
+    </wsdl:types>
+
+    <wsdl:message name="sayHiRequest">
+        <wsdl:part element="tns:sayHi" name="in"/>
+    </wsdl:message>
+    <wsdl:message name="sayHiResponse">
+        <wsdl:part element="tns:sayHiResponse" name="out"/>
+    </wsdl:message>
+    
+    <wsdl:portType name="Provider">
+        <wsdl:operation name="sayHi">
+            <wsdl:input message="tns:sayHiRequest" name="sayHiRequest"/>
+            <wsdl:output message="tns:sayHiResponse" name="sayHiResponse"/>
+        </wsdl:operation>
+    </wsdl:portType>
+
+    <wsdl:binding name="Provider_SoapBinding" type="tns:Provider">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+        
+        <wsdl:operation name="sayHi">
+            <soap:operation soapAction="http://xts.jboss.org/test/provider/sayHiAction" style="document"/>
+            <wsdl:input name="sayHiRequest">
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="sayHiResponse">
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+
+    <wsdl:service name="ProviderSoapService">
+        <wsdl:port binding="tns:Provider_SoapBinding" name="ProviderSoapPort">
+            <soap:address location="http://localhost:8080/services/providerservice"/>
+        </wsdl:port>
+    </wsdl:service>
+
+</wsdl:definitions>
+

Added: labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/ObjectFactory.java	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,48 @@
+
+package org.jboss.xts.test.provider;
+
+import javax.xml.bind.annotation.XmlRegistry;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.jboss.xts.test.provider 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.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.jboss.xts.test.provider
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link SayHi }
+     * 
+     */
+    public SayHi createSayHi() {
+        return new SayHi();
+    }
+
+    /**
+     * Create an instance of {@link SayHiResponse }
+     * 
+     */
+    public SayHiResponse createSayHiResponse() {
+        return new SayHiResponse();
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/Provider.java
===================================================================
--- labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/Provider.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/Provider.java	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,33 @@
+
+package org.jboss.xts.test.provider;
+
+import javax.jws.WebParam.Mode;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding.Style;
+import javax.jws.soap.SOAPBinding;
+import javax.jws.WebMethod;
+import javax.jws.WebResult;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+/**
+ * This class was generated by the CXF 2.0-incubator
+ * Mon Sep 10 09:47:16 BST 2007
+ * Generated source version: 2.0-incubator
+ * 
+ */
+
+ at WebService(targetNamespace = "http://xts.jboss.org/test/provider/", name = "Provider")
+
+public interface Provider {
+
+    @ResponseWrapper(targetNamespace = "http://xts.jboss.org/test/provider/", className = "org.jboss.xts.test.provider.SayHiResponse", localName = "sayHiResponse")
+    @RequestWrapper(targetNamespace = "http://xts.jboss.org/test/provider/", className = "org.jboss.xts.test.provider.SayHi", localName = "sayHi")
+    @WebResult(targetNamespace = "http://xts.jboss.org/test/provider/", name = "responseType")
+    @WebMethod(action = "http://xts.jboss.org/test/provider/sayHiAction")
+    public java.lang.String sayHi(
+        @WebParam(targetNamespace = "http://xts.jboss.org/test/provider/", name = "requestType")
+        java.lang.String requestType
+    );
+}

Added: labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/ProviderSoapService.java
===================================================================
--- labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/ProviderSoapService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/ProviderSoapService.java	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,54 @@
+
+package org.jboss.xts.test.provider;
+
+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 org.jboss.xts.test.provider.Provider;
+
+/**
+ * This class was generated by the CXF 2.0-incubator
+ * Mon Sep 10 09:47:16 BST 2007
+ * Generated source version: 2.0-incubator
+ * 
+ */
+
+ at WebServiceClient(name = "ProviderSoapService", targetNamespace = "http://xts.jboss.org/test/provider/", wsdlLocation = "file:dd/wsdl/Provider.wsdl")
+public class ProviderSoapService extends Service {
+
+    private final static URL WSDL_LOCATION;
+    private final static QName SERVICE = new QName("http://xts.jboss.org/test/provider/", "ProviderSoapService");
+    private final static QName ProviderSoapPort = new QName("http://xts.jboss.org/test/provider/", "ProviderSoapPort");
+    static {
+        URL url = null;
+        try {
+            url = new URL("file:dd/wsdl/Provider.wsdl");
+        } catch (MalformedURLException e) {
+            System.err.println("Can not initialize the default wsdl from file:dd/wsdl/Provider.wsdl");
+            // e.printStackTrace();
+        }
+        WSDL_LOCATION = url;
+    }
+
+    public ProviderSoapService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public ProviderSoapService() {
+        super(WSDL_LOCATION, SERVICE);
+    }
+
+    /**
+     * 
+     * @return
+     *     returns ProviderSoapPort
+     */
+    @WebEndpoint(name = "ProviderSoapPort")
+    public Provider getProviderSoapPort() {
+        return (Provider)super.getPort(ProviderSoapPort, Provider.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/SayHi.java
===================================================================
--- labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/SayHi.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/SayHi.java	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,66 @@
+
+package org.jboss.xts.test.provider;
+
+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 sayHi element declaration.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;element name="sayHi">
+ *   &lt;complexType>
+ *     &lt;complexContent>
+ *       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *         &lt;sequence>
+ *           &lt;element name="requestType" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;/sequence>
+ *       &lt;/restriction>
+ *     &lt;/complexContent>
+ *   &lt;/complexType>
+ * &lt;/element>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "requestType"
+})
+ at XmlRootElement(name = "sayHi")
+public class SayHi {
+
+    @XmlElement(namespace = "http://xts.jboss.org/test/provider/", required = true)
+    protected String requestType;
+
+    /**
+     * Gets the value of the requestType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getRequestType() {
+        return requestType;
+    }
+
+    /**
+     * Sets the value of the requestType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setRequestType(String value) {
+        this.requestType = value;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/SayHiResponse.java
===================================================================
--- labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/SayHiResponse.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/SayHiResponse.java	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,66 @@
+
+package org.jboss.xts.test.provider;
+
+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 sayHiResponse element declaration.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;element name="sayHiResponse">
+ *   &lt;complexType>
+ *     &lt;complexContent>
+ *       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *         &lt;sequence>
+ *           &lt;element name="responseType" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;/sequence>
+ *       &lt;/restriction>
+ *     &lt;/complexContent>
+ *   &lt;/complexType>
+ * &lt;/element>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "responseType"
+})
+ at XmlRootElement(name = "sayHiResponse")
+public class SayHiResponse {
+
+    @XmlElement(namespace = "http://xts.jboss.org/test/provider/", required = true)
+    protected String responseType;
+
+    /**
+     * Gets the value of the responseType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getResponseType() {
+        return responseType;
+    }
+
+    /**
+     * Sets the value of the responseType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setResponseType(String value) {
+        this.responseType = value;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/client/ProviderClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/client/ProviderClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/client/ProviderClient.java	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,91 @@
+package org.jboss.xts.test.provider.client;
+
+import java.io.IOException;
+
+import java.net.URL;
+import java.net.MalformedURLException;
+
+import java.util.Iterator;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import javax.xml.ws.Service;
+import javax.xml.ws.Binding;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.handler.Handler;
+
+import javax.xml.namespace.QName;
+
+import org.jboss.xts.test.provider.SayHi;
+import org.jboss.xts.test.provider.SayHiResponse;
+import org.jboss.xts.test.provider.ProviderSoapService;
+import org.jboss.xts.test.provider.ObjectFactory;
+import org.jboss.xts.test.provider.Provider;
+
+public class ProviderClient extends HttpServlet
+{
+    public static String PROVIDER_NAMESPACE = "http://xts.jboss.org/test/provider/";
+    public static String PROVIDER_SERVICE_NAME = "ProviderSoapService";
+
+    public static QName PROVIDER_SERVICE_QNAME = new QName(PROVIDER_NAMESPACE, PROVIDER_SERVICE_NAME);
+
+    public static String PROVIDER_WSDL_NAME = "http://localhost:8080/provider/service/provider?wsdl";
+
+    ProviderSoapService service = null;
+    Provider port = null;
+    ServletContext context = null;
+    boolean initialised = false;
+
+    public void init (final ServletConfig config)
+        throws ServletException
+    {
+	context = config.getServletContext();
+    }
+
+    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
+    {
+	String result;
+
+	// delay service and port initialisation to runtime so we can
+	// be sure the server has started and, hence, that the wsdl is
+	// available. this also means we retry if it is not.
+
+	if (initialised == false) {
+	    URL wsdlUrl;
+
+	    try {
+		wsdlUrl = new URL(PROVIDER_WSDL_NAME);
+
+		service = new ProviderSoapService(wsdlUrl, PROVIDER_SERVICE_QNAME);
+	
+		port = service.getProviderSoapPort();
+
+		initialised = true;
+
+	    } catch (Exception e) {
+		throw new ServletException("service wsdl unavailable", e);
+	    }
+	}
+
+        try
+        {
+	    String message = (String)request.getParameter("message");
+	    if (message == null) {
+		message = "hello world!";
+	    }
+	    result = port.sayHi(message);
+	} catch(Exception e) {
+	    throw new ServletException("sayHi request failed", e);
+	}
+
+        request.setAttribute("result", result);
+        context.getRequestDispatcher("/index.jsp").forward(request, response);
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/common/ProviderConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/common/ProviderConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/common/ProviderConstants.java	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,18 @@
+package org.jboss.xts.test.provider.common;
+
+import javax.xml.namespace.QName;
+
+public class ProviderConstants
+{
+    public final static String PROVIDER_PREFIX = "provider";
+    public final static String PROVIDER_NAMESPACE = "http://xts.jboss.org/test/provider/";
+    public final static String PROVIDER_SAYHI_LOCAL = "sayHi";
+    public final static String PROVIDER_SAYHIRESPONSE_LOCAL = "sayHiResponse";
+    public final static String PROVIDER_REQUESTTYPE_LOCAL = "";
+    public final static String PROVIDER_RESPONSETYPE_LOCAL = "responseType";
+
+    public final static QName PROVIDER_SAYHI = new QName(PROVIDER_NAMESPACE, PROVIDER_SAYHI_LOCAL);
+    public final static QName PROVIDER_SAYHIRESPONSE = new QName(PROVIDER_NAMESPACE, PROVIDER_SAYHIRESPONSE_LOCAL);
+    public final static QName PROVIDER_REQUESTTYPE = new QName(PROVIDER_NAMESPACE, PROVIDER_REQUESTTYPE_LOCAL);
+    public final static QName PROVIDER_RESPONSETYPE = new QName(PROVIDER_NAMESPACE, PROVIDER_RESPONSETYPE_LOCAL);
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/package-info.java	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://xts.jboss.org/test/provider/")
+package org.jboss.xts.test.provider;

Added: labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/services/ProviderImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/services/ProviderImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/src/org/jboss/xts/test/provider/services/ProviderImpl.java	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,193 @@
+package org.jboss.xts.test.provider.services;
+
+import java.util.Iterator;
+
+import javax.xml.soap.SOAPMessage;
+import javax.xml.ws.Provider;
+import javax.xml.ws.Service;
+import javax.xml.ws.ServiceMode;
+import javax.xml.ws.WebServiceProvider;
+
+import javax.xml.namespace.QName;
+
+import javax.xml.soap.Name;
+import javax.xml.soap.MimeHeader;
+import javax.xml.soap.Node;
+import javax.xml.soap.Text;
+import javax.xml.soap.SOAPFactory;
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPPart;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPBodyElement;
+import javax.xml.ws.WebServiceException;
+
+import org.jboss.xts.test.provider.common.ProviderConstants;
+
+ at WebServiceProvider(
+      serviceName = "ProviderSoapService",
+      portName = "ProviderSoapPort",
+      targetNamespace = "http://xts.jboss.org/test/provider/",
+      wsdlLocation = "WEB-INF/wsdl/Provider.wsdl")
+ at ServiceMode(value = Service.Mode.MESSAGE)
+
+public class ProviderImpl implements Provider<SOAPMessage>
+{
+   public SOAPMessage invoke(SOAPMessage request)
+   {
+       String message = null;
+
+       try {
+	   final SOAPPart soapPart = request.getSOAPPart();
+	   final SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
+	   SOAPHeader soapHeader = soapEnvelope.getHeader() ;
+	   
+	   Iterator iter = soapPart.getAllMimeHeaders();
+
+	   System.out.println("MimeHeaders:");
+	   while (iter.hasNext()) {
+	       MimeHeader header = (MimeHeader)iter.next();
+	       final String headerName = header.getName();
+	       final String headerValue = header.getValue();
+	       System.out.println("  " + headerName + " ==> " + headerValue);
+	   }
+
+	   iter = soapHeader.examineAllHeaderElements();
+
+	   while(iter.hasNext()) {
+	       final SOAPHeaderElement headerElement = (SOAPHeaderElement)iter.next() ;
+	       final Name headerElementName = headerElement.getElementName();
+	       if (headerElementName != null) {
+		   String headerLocalName = headerElementName.getLocalName();
+		   String headerUri = headerElementName.getURI();
+
+		   System.out.println("header : {" + headerUri + "}" + headerLocalName);
+	       }
+	   }
+
+	   SOAPBody soapBody = soapEnvelope.getBody();
+	   StringBuffer sb = new StringBuffer();
+	   sb.append("\n");
+	   message = walkSoapElements(soapBody, 0, sb);
+	   System.out.println(sb.toString());
+       } catch (Exception e) {
+	   System.out.println("ProviderImpl 1 exception : " + e);
+	   throw new WebServiceException("error processing soap request", e);
+       }
+
+       SOAPMessage reply;
+       String replyString;
+
+       if (message == null) {
+	   replyString = "Hello to you too";
+       } else if (message.equals("Hello dair")) {
+	   replyString = message + " ==> Well, hello Val";
+       } else if (message.equals("Hee honh hee honh")) {
+	   replyString = message + " ==> Salut, mon General";
+       } else if (message.equals("Hullo!")) {
+	   replyString = message + " ==> Well, if it ain't that Tony fella!";
+       } else if (message.equals("Exterminate! Exterminate!")) {
+	   replyString = message + " ==> Someone call me a Doctor!";
+       } else {
+	   replyString = message + " ==> Hello world!";
+       }
+
+       try {
+	   // ok, we need to return a SOAPBody containing a
+	   // SayHiResponse element which contains an embedded
+	   // ResponseType element which ocntains the resposne string
+
+	   MessageFactory messageFactory = MessageFactory.newInstance();
+
+	   reply = messageFactory.createMessage();
+
+	   final SOAPPart soapPart = reply.getSOAPPart();
+	   final SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
+	   SOAPBody soapBody = soapEnvelope.getBody();
+	   SOAPBodyElement responseElement = soapBody.addBodyElement(ProviderConstants.PROVIDER_SAYHIRESPONSE);
+	   SOAPElement responseTypeElement = responseElement.addChildElement(ProviderConstants.PROVIDER_RESPONSETYPE);
+	   responseTypeElement.setValue(replyString);
+       } catch (Exception e) {
+	   System.out.println("ProviderImpl 2 exception : " + e);
+	   throw new WebServiceException("error generating soap response", e);
+       }
+
+       return reply;
+   }
+
+   private String walkSoapElements(SOAPElement parent, int depth, StringBuffer sb)
+   {
+       String result = null;
+
+       Name elementName = parent.getElementName();
+       String elementPrefix = elementName.getPrefix();
+       String elementNameString = elementName.getLocalName();
+       if (elementPrefix != null && elementPrefix.length() != 0) {
+	   elementNameString = elementPrefix + ":" + elementNameString;
+       }
+
+       Iterator attributeIter, elementIter;
+       attributeIter = parent.getAllAttributes();
+       elementIter = parent.getChildElements();
+
+       tab(depth, sb);
+       sb.append("<");
+       sb.append(elementNameString);
+
+       while (attributeIter.hasNext()) {
+	   Name attributeName = (Name)attributeIter.next();
+	   String attributePrefix = attributeName.getPrefix();
+	   sb.append("\n");
+	   tab(depth + 1, sb);
+	   if (attributePrefix != null && attributePrefix.length() > 0) {
+	       sb.append(attributePrefix);
+	       sb.append(":");
+	   }
+	   sb.append(attributeName.getLocalName());
+	   sb.append("=\"");
+	   sb.append(parent.getAttributeValue(attributeName));
+	   sb.append("\"");
+       }
+
+       if (elementIter.hasNext()) {
+	   sb.append(">\n");
+	   while (elementIter.hasNext()) {
+	       Node node = (Node)elementIter.next();
+	       if (node instanceof Text) {
+		   Text text = (Text)node;
+		   if (result == null) {
+		       result = text.getValue();
+		   }
+		   tab(depth + 1, sb);
+		   sb.append(text.getValue());
+		   sb.append("\n");
+	       } else {
+		   SOAPElement child = (SOAPElement)node;
+		   String sub = walkSoapElements(child, depth + 1, sb);
+		   if (result == null) {
+		       result = sub;
+		   }
+	       }
+	   }
+	   tab(depth, sb);
+	   sb.append("</");
+	   sb.append(elementNameString);
+ 	   sb.append(">\n");
+       } else {
+	   sb.append("/>\n");
+       }
+       return result;
+   }
+
+   private void tab(int depth, StringBuffer sb)
+   {
+       for (int i = 2 * depth; i > 0; i--) {
+	   sb.append(" ");
+       }
+   }
+}

Added: labs/jbosstm/workspace/adinn/provider/web/index.jsp
===================================================================
--- labs/jbosstm/workspace/adinn/provider/web/index.jsp	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/provider/web/index.jsp	2007-09-12 17:00:57 UTC (rev 15059)
@@ -0,0 +1,123 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html>
+
+<!-- $Id: index.jsp,v 1.6 2005/02/25 09:26:46 kconner Exp $ -->
+
+<head>
+<title>JaxWS Web Service Provider Test Client</title>
+</head>
+
+<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" vlink="#336699" alink="#003366" link="#003366" text="#000000" bgcolor="#ffffff">
+
+<!-- logo and header text -->
+<table width="740" cellpadding="0" cellspacing="0" border="0">
+  <tr>
+    <td colspan="2" height="28">&nbsp;</td>
+  </tr>
+  <tr>
+    <td width="20">&nbsp;</td>
+    <td align="center" width="170" bgcolor="#ffffff">
+      <img src="images/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" border="0">
+    </td>
+    <td width="20">&nbsp;</td>
+    <td valign="middle" align="left" width="530" bgcolor="#ffffff">
+      <br/>
+      <font size="5" style="font-family: Arial, Helvetica, sans-serif">
+        JaxWS Web Service Provider Test Client
+      </font>
+    </td>
+  </tr>
+</table>
+
+<form method="GET" action="client">
+
+<TABLE width="740" cellpadding="0" cellspacing="0" border="0">
+
+<% if(null != request.getAttribute("result")) { %>
+<!-- tx result panel -->
+<TABLE width="530" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD colspan="3" height="20" bgcolor="#ffffff">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="top" align="left" width="10" bgcolor="#336699"><IMG src="images/tl_corner_10.gif" alt="" border="0"></TD><TD valign="middle" align="left" width="510" bgcolor="#336699"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><B>Provider Result</B></FONT></TD><TD valign="top" align="right" width="10" bgcolor="#336699"><IMG src="images/tr_corner_10.gif" alt="" border="0"></TD>
+</TR>
+<TR>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD><TD width="510" bgcolor="#e3e3e3">
+<FONT size="2" style="font-family: Arial, Helvetica, sans-serif">
+<div>
+<p>
+<%= request.getAttribute("result") %>
+</p>
+</FONT></TD>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="bottom" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/bl_corner_10.gif" alt="" border="0"></TD><TD width="510" bgcolor="#e3e3e3">&nbsp;</TD><TD valign="bottom" align="right" width="10" bgcolor="#e3e3e3"><IMG src="images/br_corner_10.gif" alt="" border="0"></TD>
+</TR>
+</TABLE>
+<% } // end if %>
+
+
+<!-- message selection panel -->
+<TABLE width="530" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD colspan="3" height="20" bgcolor="#ffffff">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="top" align="left" width="10" bgcolor="#336699"><IMG src="images/tl_corner_10.gif" alt="" border="0"></TD><TD valign="middle" align="left" width="510" bgcolor="#336699"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><B>Message Selection</B></FONT></TD><TD valign="top" align="right" width="10" bgcolor="#336699"><IMG src="images/tr_corner_10.gif" alt="" border="0"></TD>
+</TR>
+<TR>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD><TD width="510" bgcolor="#e3e3e3">
+<FONT size="2" style="font-family: Arial, Helvetica, sans-serif">
+<div>
+<p>
+Message:
+<SELECT NAME="message">
+<option value="Hello dair">Val Doonican (Hello dair)</option>
+<option value="Hee honh hee honh">Generale de Gaulle (Hee honh hee honh)</option>
+<option value="Hullo!">Tony Blair (Hullo!)</option>
+<option value="Exterminate! Exterminate!">Dalek (Exterminate! Exterminate!)</option>
+</SELECT>
+</p>
+</FONT></TD>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="bottom" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/bl_corner_10.gif" alt="" border="0"></TD><TD width="510" bgcolor="#e3e3e3">&nbsp;</TD><TD valign="bottom" align="right" width="10" bgcolor="#e3e3e3"><IMG src="images/br_corner_10.gif" alt="" border="0"></TD>
+</TR>
+</TABLE>
+
+
+<!-- submit / reset panel -->
+<TABLE width="530" cellpadding="0" cellspacing="0" border="0">
+<TR>
+<TD colspan="3" height="20" bgcolor="#ffffff">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="top" align="left" width="10" bgcolor="#336699"><IMG src="images/tl_corner_10.gif" alt="" border="0"></TD><TD valign="middle" align="left" width="510" bgcolor="#336699"><FONT size="2" color="#ffffff" style="font-family: Arial, Helvetica, sans-serif"><B>Controls</B></FONT></TD><TD valign="top" align="right" width="10" bgcolor="#336699"><IMG src="images/tr_corner_10.gif" alt="" border="0"></TD>
+</TR>
+<TR>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD><TD width="510" bgcolor="#e3e3e3">
+<FONT size="2" style="font-family: Arial, Helvetica, sans-serif">
+<p>
+<input type="submit" name="submit" value="Send message" />
+&nbsp;&nbsp;
+<input type="reset" name="reset" value="Reset" />
+</p>
+</FONT></TD>
+<TD width="10" bgcolor="#e3e3e3">&nbsp;</TD>
+</TR>
+<TR>
+<TD valign="bottom" align="left" width="10" bgcolor="#e3e3e3"><IMG src="images/bl_corner_10.gif" alt="" border="0"></TD><TD width="510" bgcolor="#e3e3e3">&nbsp;</TD><TD valign="bottom" align="right" width="10" bgcolor="#e3e3e3"><IMG src="images/br_corner_10.gif" alt="" border="0"></TD>
+</TR>
+</TABLE>
+
+</form>
+
+</table>
+
+</body>
+
+</html>
+


Property changes on: labs/jbosstm/workspace/adinn/provider/web/index.jsp
___________________________________________________________________
Name: svn:executable
   + *




More information about the jboss-svn-commits mailing list