[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>
+ * <element name="sayHi">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="requestType" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </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>
+ * <element name="sayHiResponse">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="responseType" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </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"> </td>
+ </tr>
+ <tr>
+ <td width="20"> </td>
+ <td align="center" width="170" bgcolor="#ffffff">
+ <img src="images/JBoss_DivOfRH_RGB.gif" alt="arjuna logo" border="0">
+ </td>
+ <td width="20"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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" />
+
+<input type="reset" name="reset" value="Reset" />
+</p>
+</FONT></TD>
+<TD width="10" bgcolor="#e3e3e3"> </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"> </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