You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by mm...@apache.org on 2004/12/24 00:53:44 UTC

svn commit: r123255 - in incubator/beehive/trunk: samples/AddressBookWS/WEB-INF samples/AddressBookWS/WEB-INF/src/web wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl wsm/src/runtime/org/apache/beehive/wsm/jsr181/wsdl

Author: mmerz
Date: Thu Dec 23 15:53:43 2004
New Revision: 123255

URL: http://svn.apache.org/viewcvs?view=rev&rev=123255
Log:
Fixed WSDL to OM processing for methods that are the Oneway or return  Void.

Added more methods to the AddressBook sample.

Contributor: Daryoush Mehrtash


Modified:
   incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/client-build.xml
   incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/src/web/Service.jws
   incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/WSDL2AnnotatedJavaTest.java
   incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessor.java

Modified: incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/client-build.xml
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/client-build.xml?view=diff&rev=123255&p1=incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/client-build.xml&r1=123254&p2=incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/client-build.xml&r2=123255
==============================================================================
--- incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/client-build.xml	(original)
+++ incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/client-build.xml	Thu Dec 23 15:53:43 2004
@@ -3,7 +3,7 @@
 <project name="AddressBookClient" basedir="." default="all">
 	
 	<property name="AddressBook.wsdl.url" 
-		value="http://localhost:8080/AddressBookWS/web/Service.jws?wsdl" />
+		value="http://localhost:8080/AddressBook/web/Service.jws?wsdl" />
 	
 	
 	<path id="jars">
@@ -20,12 +20,15 @@
  
 	<target name="clean">
 		<delete dir="build" />
+		<delete dir="./logs" />
+		
 	</target>
 	
 	<target name="dirs">
 		<mkdir dir="build" />
 		<mkdir dir="build/generated" />
 		<mkdir dir="build/classes" />
+		<mkdir dir="./logs" />
 
 	</target>	
 	<target name="all" depends="genClient, compile, test"/>
@@ -53,9 +56,8 @@
 	              <pathelement location= "build/classes"/>
 	              <path refid="jars"/>
 	          </classpath>
-
-
-	    	<batchtest fork="yes" todir=".">
+            <formatter type="plain"/>
+	    	<batchtest fork="yes" todir="./logs">
 	   	    <fileset dir="build/classes">
 	   	      <include name="**/*Test*.class"/>
 	   	    </fileset>

Modified: incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/src/web/Service.jws
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/src/web/Service.jws?view=diff&rev=123255&p1=incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/src/web/Service.jws&r1=123254&p2=incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/src/web/Service.jws&r2=123255
==============================================================================
--- incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/src/web/Service.jws	(original)
+++ incubator/beehive/trunk/samples/AddressBookWS/WEB-INF/src/web/Service.jws	Thu Dec 23 15:53:43 2004
@@ -61,6 +61,36 @@
         return addressBook.getAddressFromName(name);
     }
     
+    @WebMethod
+    public Address[] getAddressFromNames(String[] name) {
+    	if(null == name) return null;
+    	Address[] result = new Address[name.length];
+    	for(int i=0; i< name.length; i++) {
+    	 result[i] = addressBook.getAddressFromName(name[i]);
+    	}
+    	return result;
+    }    
+    
+    @WebMethod
+    @Oneway
+    public void oneWayWithParam(String param1) {
+    	return;
+    }
+    
+    
+     @WebMethod
+    @Oneway
+    public void oneWayWithNoParam() {
+    	return;
+    }
+    
+    
+    
+    @WebMethod
+    public String simpleNoParamMethod () {
+    	return "No Param method";
+    }
+    
     /**
      * This method is not exposed by the Web Service and can only be used
      * locally.
@@ -69,4 +99,6 @@
     public String notWebService() {
         return "Not available through Web service";
     }
+    
+    
 }

Modified: incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/WSDL2AnnotatedJavaTest.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/WSDL2AnnotatedJavaTest.java?view=diff&rev=123255&p1=incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/WSDL2AnnotatedJavaTest.java&r1=123254&p2=incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/WSDL2AnnotatedJavaTest.java&r2=123255
==============================================================================
--- incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/WSDL2AnnotatedJavaTest.java	(original)
+++ incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/jsr181/wsdl/WSDL2AnnotatedJavaTest.java	Thu Dec 23 15:53:43 2004
@@ -77,52 +77,61 @@
     public void testSrcCodeGeneration() throws Exception {
             
             StringWriter result = new StringWriter();
-            //FileInputStream fis = new FileInputStream("./wsm/drt/tests/FooWSDL.xml");
-            //StringBufferInputStream sbis = new StringBufferInputStream(theWSDL);
+            //FileInputStream src = new FileInputStream("temp.wsdl");
+            StringBufferInputStream src = new StringBufferInputStream(theWSDL);
+            WSDLProcessor wsdlProc = new XmlBeanWSDLProcessor();
+            Jsr181TypeMetadata om = wsdlProc.createObjectModel(src);
             
-            Jsr181TypeMetadata om = new Jsr181TypeMetadataImpl("myClassName");
-            om.setWsName("MyWebService");
-            om.setWsTargetNamespace("http://beehive.apache.org/mywebservice");
-            om.setWsWsdlLocation("myWsdlLocation");
+            Collection<Jsr181MethodMetadata> methods =om.getMethods();
+            System.out.println("Size of my mehtod list: " + om.getMethods().size());
+            for(Jsr181MethodMetadata method : methods) {
+                System.out.println("NEXT METHOD NAME: " + method.getJavaMethodName());
+                
+            }
             
-            Jsr181MethodMetadata method1 = new Jsr181MethodMetadataImpl("firstMethod", void.class);
-            method1.setOneWay(true);
-            method1.setWmOperationName("myFirstMethodOperationName");
-            om.addMethod(method1);
- 
-            
-            Jsr181MethodMetadata method2 = new Jsr181MethodMetadataImpl("secondMethod", String.class);
-            method2.setOneWay(false);
-            method2.setWmOperationName("mySecondMethodOperationName");
-            Jsr181ParameterMetadata param1 = new Jsr181ParameterMetadataImpl();
-            param1.setJavaType(String.class);
-            param1.setWpName("myStringParam");
-            param1.setWpTargetNamespace("http://beehive.apache.org/myparameters");
-            param1.setWpMode(WebParam.Mode.INOUT);
-            method2.addParam(param1);
-            method2.setWrName("method2Result");
-            method2.setWrTargetNamespace("http://beehive.apache.org//myresults");
-            om.addMethod(method2);
- 
-            Jsr181MethodMetadata method3 = new Jsr181MethodMetadataImpl("thirdMethod", String.class);
-            method3.setOneWay(false);
-            method3.setWmOperationName("myThirdMethodOperationName");
-            Jsr181ParameterMetadata param3_1 = new Jsr181ParameterMetadataImpl();
-            param3_1.setJavaType(String.class);
-            param3_1.setWpName("myStringParam1");
-            param3_1.setWpTargetNamespace("http://beehive.apache.org//myparameters");
-            param3_1.setWpMode(WebParam.Mode.INOUT);
-            method3.addParam(param3_1);
-            Jsr181ParameterMetadata param3_2 = new Jsr181ParameterMetadataImpl();
-            param3_2.setJavaType(String.class);
-            param3_2.setWpName("myStringParam2");
-            param3_2.setWpTargetNamespace("http://beehive.apache.org//myparameters");
-            param3_2.setWpMode(WebParam.Mode.IN);
-            method3.addParam(param3_2);
-            method3.setWrName("method3Result");
-            method3.setWrTargetNamespace("http://beehive.apache.org//myresults");
-            om.addMethod(method3);
- 
+//            Jsr181TypeMetadata om = new Jsr181TypeMetadataImpl("myClassName");
+//            om.setWsName("MyWebService");
+//            om.setWsTargetNamespace("http://beehive.apache.org/mywebservice");
+//            om.setWsWsdlLocation("myWsdlLocation");
+//            
+//            Jsr181MethodMetadata method1 = new Jsr181MethodMetadataImpl("firstMethod", void.class);
+//            method1.setOneWay(true);
+//            method1.setWmOperationName("myFirstMethodOperationName");
+//            om.addMethod(method1);
+// 
+//            
+//            Jsr181MethodMetadata method2 = new Jsr181MethodMetadataImpl("secondMethod", String.class);
+//            method2.setOneWay(false);
+//            method2.setWmOperationName("mySecondMethodOperationName");
+//            Jsr181ParameterMetadata param1 = new Jsr181ParameterMetadataImpl();
+//            param1.setJavaType(String.class);
+//            param1.setWpName("myStringParam");
+//            param1.setWpTargetNamespace("http://beehive.apache.org/myparameters");
+//            param1.setWpMode(WebParam.Mode.INOUT);
+//            method2.addParam(param1);
+//            method2.setWrName("method2Result");
+//            method2.setWrTargetNamespace("http://beehive.apache.org//myresults");
+//            om.addMethod(method2);
+// 
+//            Jsr181MethodMetadata method3 = new Jsr181MethodMetadataImpl("thirdMethod", String.class);
+//            method3.setOneWay(false);
+//            method3.setWmOperationName("myThirdMethodOperationName");
+//            Jsr181ParameterMetadata param3_1 = new Jsr181ParameterMetadataImpl();
+//            param3_1.setJavaType(String.class);
+//            param3_1.setWpName("myStringParam1");
+//            param3_1.setWpTargetNamespace("http://beehive.apache.org//myparameters");
+//            param3_1.setWpMode(WebParam.Mode.INOUT);
+//            method3.addParam(param3_1);
+//            Jsr181ParameterMetadata param3_2 = new Jsr181ParameterMetadataImpl();
+//            param3_2.setJavaType(String.class);
+//            param3_2.setWpName("myStringParam2");
+//            param3_2.setWpTargetNamespace("http://beehive.apache.org//myparameters");
+//            param3_2.setWpMode(WebParam.Mode.IN);
+//            method3.addParam(param3_2);
+//            method3.setWrName("method3Result");
+//            method3.setWrTargetNamespace("http://beehive.apache.org//myresults");
+//            om.addMethod(method3);
+// 
             
             Wsdl2AJava processor = new Wsdl2AJava();
             processor.init();
@@ -132,57 +141,203 @@
     }
     
     String theWSDL = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
-            "<wsdl:definitions targetNamespace=\"http://www.superflaco.com/AnnotationTest\" xmlns:apachesoap=\"http://xml.apache.org/xml-soap\" xmlns:impl=\"http://www.superflaco.com/AnnotationTest\" xmlns:intf=\"http://www.superflaco.com/AnnotationTest\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\" xmlns:wsdlsoap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
-            "    <!--WSDL created by Apache Axis version: 1.2beta3" +
-            "    Built on Aug 15, 2004 (04:32:00 PDT)-->" +
-            "    <wsdl:message name=\"goHomeResponse\">" +
-            "        <wsdl:part name=\"howdy\" type=\"soapenc:string\"/>" +
-            "    </wsdl:message>" +
-            "    <wsdl:message name=\"goHomeRequest\">" +
-            "    </wsdl:message>" +
-            "    <wsdl:message name=\"GoLocoResponse\">" +
-            "        <wsdl:part name=\"result\" type=\"xsd:boolean\"/>" +
-            "    </wsdl:message>" +
-            " <wsdl:message name=\"GoLocoRequest\">" +
-            "        <wsdl:part name=\"in0\" type=\"xsd:int\"/>" +
-            "<wsdl:part name=\"detail\" type=\"soapenc:string\"/>" +
-            "    </wsdl:message>" +
-            "    <wsdl:portType name=\"Abacus\">" +
-            "        <wsdl:operation name=\"GoLoco\" parameterOrder=\"in0 detail\">" +
-            "            <wsdl:input message=\"impl:GoLocoRequest\" name=\"GoLocoRequest\"/>" +
-            "            <wsdl:output message=\"impl:GoLocoResponse\" name=\"GoLocoResponse\"/>" +
-            "        </wsdl:operation>" +
-            "        <wsdl:operation name=\"goHome\">" +
-            "            <wsdl:input message=\"impl:goHomeRequest\" name=\"goHomeRequest\"/>" +
-            "            <wsdl:output message=\"impl:goHomeResponse\" name=\"goHomeResponse\"/>" +
-            "        </wsdl:operation>" +
-            "    </wsdl:portType>" +
-            "    <wsdl:binding name=\"FooSoapBinding\" type=\"impl:Abacus\">" +
-            "        <wsdlsoap:binding style=\"rpc\" transport=\"http://schemas.xmlsoap.org/soap/http\"/>" +
-            "        <wsdl:operation name=\"GoLoco\">" +
-            "            <wsdlsoap:operation soapAction=\"LocoAction\"/>" +
-            "           <wsdl:input name=\"GoLocoRequest\">" +
-            "                <wsdlsoap:body encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" namespace=\"http://www.superflaco.com/AnnotationTest\" use=\"encoded\"/>" +
-            "            </wsdl:input>" +
-            "            <wsdl:output name=\"GoLocoResponse\">" +
-            "                <wsdlsoap:body encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" namespace=\"http://www.superflaco.com/AnnotationTest\" use=\"encoded\"/>" +
-            "            </wsdl:output>" +
-            "        </wsdl:operation>" +
-            "        <wsdl:operation name=\"goHome\">" +
-            "            <wsdlsoap:operation soapAction=\"\"/>" +
-            "            <wsdl:input name=\"goHomeRequest\">" +
-            "                <wsdlsoap:body encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" namespace=\"http://www.superflaco.com/AnnotationTest\" use=\"encoded\"/>" +
-            "            </wsdl:input>" +
-            "            <wsdl:output name=\"goHomeResponse\">" +
-            "                <wsdlsoap:body encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" namespace=\"http://www.superflaco.com/AnnotationTest\" use=\"encoded\"/>" +
-            "            </wsdl:output>" +
-            "        </wsdl:operation>" +
-            "    </wsdl:binding>" +
-            "    <wsdl:service name=\"Cheetorama\">" +
-            "        <wsdl:port binding=\"impl:FooSoapBinding\" name=\"Foo\">" +
-            "            <wsdlsoap:address location=\"http://localhost:8080/AnnotatedAxis/Foo.jws\"/>" +
-            "        </wsdl:port>" +
-            "    </wsdl:service>" +
-            "</wsdl:definitions>";
+    "<wsdl:definitions targetNamespace=\"http://beehive.apache.org/AddressBook\" xmlns:apachesoap=\"http://xml.apache.org/xml-soap\" xmlns:impl=\"http://beehive.apache.org/AddressBook\" xmlns:intf=\"http://beehive.apache.org/AddressBook\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\" xmlns:wsdlsoap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
+    "<!--WSDL created by Apache Axis version: 1.2RC2Built on Nov 16, 2004 (12:19:44 EST)-->" +
+     "<wsdl:types>" +
+      "<schema elementFormDefault=\"qualified\" targetNamespace=\"http://beehive.apache.org/AddressBook\" xmlns=\"http://www.w3.org/2001/XMLSchema\">" +
+       "<element name=\"oneWayWithParam\">" +
+        "<complexType>" +
+         "<sequence>" +
+          "<element name=\"in0\" type=\"xsd:string\"/>" +
+         "</sequence>" +
+        "</complexType>" +
+       "</element>" +
+       "<element name=\"getAddressFromName\">" +
+        "<complexType>" +
+         "<sequence>" +
+          "<element name=\"in0\" type=\"xsd:string\"/>" +
+         "</sequence>" +
+        "</complexType>" +
+       "</element>" +
+       "<element name=\"getAddressFromNameResponse\">" +
+        "<complexType>" +
+         "<sequence>" +
+          "<element name=\"result\" type=\"impl:Address\"/>" +
+         "</sequence>" +
+        "</complexType>" +
+       "</element>" +
+       "<complexType name=\"Phone\">" +
+        "<sequence>" +
+         "<element name=\"areaCode\" type=\"xsd:int\"/>" +
+         "<element name=\"exchange\" nillable=\"true\" type=\"xsd:string\"/>" +
+         "<element name=\"number\" nillable=\"true\" type=\"xsd:string\"/>" +
+        "</sequence>" +
+       "</complexType>" +
+       "<complexType name=\"StateType\">" +
+        "<sequence>" +
+         "<element name=\"state\" nillable=\"true\" type=\"xsd:string\"/>" +
+        "</sequence>" +
+       "</complexType>" +
+       "<complexType name=\"Address\">" +
+        "<sequence>" +
+         "<element name=\"city\" nillable=\"true\" type=\"xsd:string\"/>" +
+         "<element name=\"phoneNumber\" nillable=\"true\" type=\"impl:Phone\"/>" +
+         "<element name=\"state\" nillable=\"true\" type=\"impl:StateType\"/>" +
+         "<element name=\"streetName\" nillable=\"true\" type=\"xsd:string\"/>" +
+         "<element name=\"streetNum\" type=\"xsd:int\"/>" +
+         "<element name=\"zip\" type=\"xsd:int\"/>" +
+        "</sequence>" +
+       "</complexType>" +
+       "<element name=\"oneWayWithNoParameter\">" +
+        "<complexType/>" +
+       "</element>" +
+       "<element name=\"addEntry\">" +
+        "<complexType>" +
+         "<sequence>" +
+          "<element name=\"in0\" type=\"xsd:string\"/>" +
+          "<element name=\"in1\" type=\"impl:Address\"/>" +
+         "</sequence>" +
+        "</complexType>" +
+       "</element>" +
+       "<element name=\"addEntryResponse\">" +
+        "<complexType/>" +
+       "</element>" +
+       "<element name=\"getAddressFromNames\">" +
+        "<complexType>" +
+         "<sequence>" +
+          "<element maxOccurs=\"unbounded\" name=\"in0\" type=\"xsd:string\"/>" +
+         "</sequence>" +
+        "</complexType>" +
+       "</element>" +
+       "<element name=\"getAddressFromNamesResponse\">" +
+        "<complexType>" +
+         "<sequence>" +
+          "<element maxOccurs=\"unbounded\" name=\"result\" type=\"impl:Address\"/>" +
+         "</sequence>" +
+        "</complexType>" +
+       "</element>" +
+       "<element name=\"simpleNoParamMethod\">" +
+        "<complexType/>" +
+       "</element>" +
+       "<element name=\"simpleNoParamMethodResponse\">" +
+        "<complexType>" +
+         "<sequence>" +
+          "<element name=\"result\" type=\"xsd:string\"/>" +
+         "</sequence>" +
+        "</complexType>" +
+       "</element>" +
+      "</schema>" +
+     "</wsdl:types>" +
+       "<wsdl:message name=\"getAddressFromNamesResponse\">" +
+          "<wsdl:part element=\"impl:getAddressFromNamesResponse\" name=\"parameters\"/>" +
+       "</wsdl:message>" +
+       "<wsdl:message name=\"addEntryRequest\">" +
+          "<wsdl:part element=\"impl:addEntry\" name=\"parameters\"/>" +
+       "</wsdl:message>" +
+       "<wsdl:message name=\"simpleNoParamMethodResponse\">" +
+          "<wsdl:part element=\"impl:simpleNoParamMethodResponse\" name=\"parameters\"/>" +
+       "</wsdl:message>" +
+       "<wsdl:message name=\"getAddressFromNamesRequest\">" +
+          "<wsdl:part element=\"impl:getAddressFromNames\" name=\"parameters\"/>" +
+       "</wsdl:message>" +
+       "<wsdl:message name=\"addEntryResponse\">" +
+          "<wsdl:part element=\"impl:addEntryResponse\" name=\"parameters\"/>" +
+       "</wsdl:message>" +
+       "<wsdl:message name=\"oneWayWithNoParameterRequest\">" +
+          "<wsdl:part element=\"impl:oneWayWithNoParameter\" name=\"parameters\"/>" +
+       "</wsdl:message>" +
+       "<wsdl:message name=\"getAddressFromNameResponse\">" +
+          "<wsdl:part element=\"impl:getAddressFromNameResponse\" name=\"parameters\"/>" +
+       "</wsdl:message>" +
+       "<wsdl:message name=\"oneWayWithParamRequest\">" +
+          "<wsdl:part element=\"impl:oneWayWithParam\" name=\"parameters\"/>" +
+       "</wsdl:message>" +
+       "<wsdl:message name=\"getAddressFromNameRequest\">" +
+          "<wsdl:part element=\"impl:getAddressFromName\" name=\"parameters\"/>" +
+       "</wsdl:message>" +
+       "<wsdl:message name=\"simpleNoParamMethodRequest\">" +
+          "<wsdl:part element=\"impl:simpleNoParamMethod\" name=\"parameters\"/>" +
+       "</wsdl:message>" +
+       "<wsdl:portType name=\"Service\">" +
+          "<wsdl:operation name=\"oneWayWithParam\">" +
+             "<wsdl:input message=\"impl:oneWayWithParamRequest\" name=\"oneWayWithParamRequest\"/>" +
+          "</wsdl:operation>" +
+          "<wsdl:operation name=\"getAddressFromName\">" +
+             "<wsdl:input message=\"impl:getAddressFromNameRequest\" name=\"getAddressFromNameRequest\"/>" +
+             "<wsdl:output message=\"impl:getAddressFromNameResponse\" name=\"getAddressFromNameResponse\"/>" +
+          "</wsdl:operation>" +
+          "<wsdl:operation name=\"oneWayWithNoParameter\">" +
+             "<wsdl:input message=\"impl:oneWayWithNoParameterRequest\" name=\"oneWayWithNoParameterRequest\"/>" +
+          "</wsdl:operation>" +
+          "<wsdl:operation name=\"addEntry\">" +
+             "<wsdl:input message=\"impl:addEntryRequest\" name=\"addEntryRequest\"/>" +
+             "<wsdl:output message=\"impl:addEntryResponse\" name=\"addEntryResponse\"/>" +
+          "</wsdl:operation>" +
+          "<wsdl:operation name=\"getAddressFromNames\">" +
+             "<wsdl:input message=\"impl:getAddressFromNamesRequest\" name=\"getAddressFromNamesRequest\"/>" +
+             "<wsdl:output message=\"impl:getAddressFromNamesResponse\" name=\"getAddressFromNamesResponse\"/>" +
+          "</wsdl:operation>" +
+          "<wsdl:operation name=\"simpleNoParamMethod\">" +
+             "<wsdl:input message=\"impl:simpleNoParamMethodRequest\" name=\"simpleNoParamMethodRequest\"/>" +
+             "<wsdl:output message=\"impl:simpleNoParamMethodResponse\" name=\"simpleNoParamMethodResponse\"/>" +
+          "</wsdl:operation>" +
+       "</wsdl:portType>" +
+       "<wsdl:binding name=\"ServiceSoapBinding\" type=\"impl:Service\">" +
+          "<wsdlsoap:binding style=\"document\" transport=\"http://schemas.xmlsoap.org/soap/http\"/>" +
+          "<wsdl:operation name=\"oneWayWithParam\">" +
+             "<wsdlsoap:operation soapAction=\"\"/>" +
+             "<wsdl:input name=\"oneWayWithParamRequest\">" +
+                "<wsdlsoap:body use=\"literal\"/>" +
+             "</wsdl:input>" +
+          "</wsdl:operation>" +
+          "<wsdl:operation name=\"getAddressFromName\">" +
+             "<wsdlsoap:operation soapAction=\"\"/>" +
+             "<wsdl:input name=\"getAddressFromNameRequest\">" +
+                "<wsdlsoap:body use=\"literal\"/>" +
+             "</wsdl:input>" +
+             "<wsdl:output name=\"getAddressFromNameResponse\">" +
+                "<wsdlsoap:body use=\"literal\"/>" +
+             "</wsdl:output>" +
+          "</wsdl:operation>" +
+          "<wsdl:operation name=\"oneWayWithNoParameter\">" +
+             "<wsdlsoap:operation soapAction=\"\"/>" +
+             "<wsdl:input name=\"oneWayWithNoParameterRequest\">" +
+                "<wsdlsoap:body use=\"literal\"/>" +
+             "</wsdl:input>" +
+          "</wsdl:operation>" +
+          "<wsdl:operation name=\"addEntry\">" +
+             "<wsdlsoap:operation soapAction=\"\"/>" +
+             "<wsdl:input name=\"addEntryRequest\">" +
+                "<wsdlsoap:body use=\"literal\"/>" +
+             "</wsdl:input>" +
+             "<wsdl:output name=\"addEntryResponse\">" +
+                "<wsdlsoap:body use=\"literal\"/>" +
+             "</wsdl:output>" +
+          "</wsdl:operation>" +
+          "<wsdl:operation name=\"getAddressFromNames\">" +
+             "<wsdlsoap:operation soapAction=\"\"/>" +
+             "<wsdl:input name=\"getAddressFromNamesRequest\">" +
+                "<wsdlsoap:body use=\"literal\"/>" +
+             "</wsdl:input>" +
+             "<wsdl:output name=\"getAddressFromNamesResponse\">" +
+                "<wsdlsoap:body use=\"literal\"/>" +
+             "</wsdl:output>" +
+          "</wsdl:operation>" +
+          "<wsdl:operation name=\"simpleNoParamMethod\">" +
+             "<wsdlsoap:operation soapAction=\"\"/>" +
+             "<wsdl:input name=\"simpleNoParamMethodRequest\">" +
+                "<wsdlsoap:body use=\"literal\"/>" +
+             "</wsdl:input>" +
+             "<wsdl:output name=\"simpleNoParamMethodResponse\">" +
+                "<wsdlsoap:body use=\"literal\"/>" +
+             "</wsdl:output>" +
+          "</wsdl:operation>" +
+       "</wsdl:binding>" +
+       "<wsdl:service name=\"ServiceService\">" +
+          "<wsdl:port binding=\"impl:ServiceSoapBinding\" name=\"Service\">" +
+             "<wsdlsoap:address location=\"http://localhost:8080/AddressBook/web/Service.jws\"/>" +
+          "</wsdl:port>" +
+       "</wsdl:service>" +
+    "</wsdl:definitions>";
 
 }

Modified: incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessor.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessor.java?view=diff&rev=123255&p1=incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessor.java&r1=123254&p2=incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessor.java&r2=123255
==============================================================================
--- incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessor.java	(original)
+++ incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/jsr181/wsdl/XmlBeanWSDLProcessor.java	Thu Dec 23 15:53:43 2004
@@ -212,21 +212,40 @@
                                    Map<String, TPart[]> messageMap,
                                    TTypes types) throws Exception {
         String opName = op.getName();
-        TParam outputParam = op.getOutput();
-        
-        ClientParameterMetadata[] paraMeta = 
+         TParam outputParam = op.getOutput();
+
+         ClientParameterMetadata[] paraMeta = 
             processParameters(outputParam, types, messageMap, wsm);
-        if (paraMeta != null && paraMeta.length == 1) {
-            ClientMethodMetadata wmm =
+         Class returnType;
+         QName returnXMLType;
+         
+         if(paraMeta == null) {
+            // Should not happen, may be need to send runtime exception, or
+            // define a new type of exception!
+            throw new Exception("Can't resolve the return type");
+         } else if (paraMeta.length == 0 ) {   // no return type
+            returnType=Void.TYPE;
+            returnXMLType = null;  // correct?
+         } else if (paraMeta.length == 1 ) {
+            returnType = paraMeta[0].getJavaType();
+            returnXMLType = paraMeta[0].getXmlType();
+         } else {
+            // Should not happen, may be need to send runtime exception, or
+            // define a new type of exception!
+            throw new Exception("Return type is resolved into multiple parameters!");
+           
+         }
+
+             ClientMethodMetadata wmm =
                 new ClientMethodMetadataImpl(opName,
-                                         paraMeta[0].getJavaType(),
-                                         paraMeta[0].getXmlType());
+                                         returnType,
+                                         returnXMLType);
 
             wmm.setWmOperationName(opName);
             // FIXME jcolwell@bea.com 2004-Nov-10 --
             // do something better with the action
             wmm.setWmAction(opName);
-            if (Void.TYPE.equals(paraMeta[0].getJavaType())) {
+            if (Void.TYPE.equals(returnType)) {
                 // FIXME jcolwell@bea.com 2004-Nov-22 --
                 // check for faults before setting as oneway.
                 wmm.setOneWay(true);
@@ -277,9 +296,9 @@
             for (Jsr181ParameterMetadata wpm : params) {
                 System.out.println(wpm.getWpName() + ':' + wpm.getJavaType());
             }
-            */            
+            */   
             wsm.addMethod(wmm);
-        }
+        
     }
 
     private ClientParameterMetadata[]