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[]