You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2004/05/17 18:24:51 UTC
cvs commit: ws-axis/java/samples/client DynamicInvoker.java readme
dims 2004/05/17 09:24:51
Modified: java/src/org/apache/axis/client Call.java
java/samples/client DynamicInvoker.java readme
Log:
- Get DynamicInvoker to work again with simple samples
- Get DynamicInvoker to work with complex return type (result is stored in a dom element)
Revision Changes Path
1.224 +2 -2 ws-axis/java/src/org/apache/axis/client/Call.java
Index: Call.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/client/Call.java,v
retrieving revision 1.223
retrieving revision 1.224
diff -u -r1.223 -r1.224
--- Call.java 9 May 2004 09:55:43 -0000 1.223
+++ Call.java 17 May 2004 16:24:50 -0000 1.224
@@ -937,7 +937,7 @@
//if (parmAndRetReq) {
ParameterDesc param = new ParameterDesc();
- param.setQName( paramName );
+ param.setQName(new QName(paramName.getNamespaceURI(),Utils.getLastLocalPart(paramName.getLocalPart())));
param.setTypeQName( xmlType );
param.setJavaType( javaType );
byte mode = ParameterDesc.IN;
@@ -1024,7 +1024,7 @@
operation = new OperationDesc();
ParameterDesc param = new ParameterDesc();
- param.setQName(paramName);
+ param.setQName(new QName(paramName.getNamespaceURI(),Utils.getLastLocalPart(paramName.getLocalPart())));
param.setTypeQName(xmlType);
param.setJavaType(javaType);
if (parameterMode == ParameterMode.IN) {
1.11 +25 -5 ws-axis/java/samples/client/DynamicInvoker.java
Index: DynamicInvoker.java
===================================================================
RCS file: /home/cvs/ws-axis/java/samples/client/DynamicInvoker.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- DynamicInvoker.java 25 Feb 2004 14:02:22 -0000 1.10
+++ DynamicInvoker.java 17 May 2004 16:24:51 -0000 1.11
@@ -16,7 +16,11 @@
package samples.client;
import org.apache.axis.Constants;
+import org.apache.axis.utils.XMLUtils;
import org.apache.axis.encoding.ser.SimpleDeserializer;
+import org.apache.axis.encoding.ser.ElementSerializerFactory;
+import org.apache.axis.encoding.ser.ElementDeserializerFactory;
+import org.apache.axis.encoding.ser.ElementDeserializer;
import org.apache.axis.wsdl.gen.Parser;
import org.apache.axis.wsdl.symbolTable.BaseType;
import org.apache.axis.wsdl.symbolTable.BindingEntry;
@@ -26,6 +30,7 @@
import org.apache.axis.wsdl.symbolTable.SymTabEntry;
import org.apache.axis.wsdl.symbolTable.SymbolTable;
import org.apache.axis.wsdl.symbolTable.TypeEntry;
+import org.w3c.dom.Element;
import javax.wsdl.Binding;
import javax.wsdl.Operation;
@@ -108,11 +113,17 @@
DynamicInvoker invoker = new DynamicInvoker(wsdlLocation);
HashMap map = invoker.invokeMethod(operationName, portName, args);
- // print result
- System.out.println("Result:");
- for (Iterator it = map.keySet().iterator(); it.hasNext();) {
- String name = (String) it.next();
- System.out.println(name + "=" + map.get(name));
+ for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
+ Map.Entry entry = (Map.Entry) it.next();
+ String key = (String) entry.getKey();
+ Object value = entry.getValue();
+ if (value instanceof Element) {
+ System.out.println("====== " + key + " ======");
+ XMLUtils.ElementToStream((Element) value, System.out);
+ System.out.println("=========================");
+ } else {
+ System.out.println(key + "=" + value);
+ }
}
System.out.println("\nDone!");
}
@@ -152,6 +163,8 @@
Call call = dpf.createCall(QName.valueOf(portName),
QName.valueOf(operationName));
((org.apache.axis.client.Call)call).setTimeout(new Integer(15*1000));
+ ((org.apache.axis.client.Call)call).setProperty(ElementDeserializer.DESERIALIZE_CURRENT_ELEMENT, Boolean.TRUE);
+
// Output types and names
Vector outNames = new Vector();
@@ -194,6 +207,13 @@
// set output type
if (parameters.returnParam != null) {
+
+ if(!parameters.returnParam.getType().isBaseType()) {
+ ((org.apache.axis.client.Call)call).registerTypeMapping(org.w3c.dom.Element.class, parameters.returnParam.getType().getQName(),
+ new ElementSerializerFactory(),
+ new ElementDeserializerFactory());
+ }
+
// Get the QName for the return Type
QName returnType = org.apache.axis.wsdl.toJava.Utils.getXSIType(
parameters.returnParam);
1.3 +2 -2 ws-axis/java/samples/client/readme
Index: readme
===================================================================
RCS file: /home/cvs/ws-axis/java/samples/client/readme,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- readme 25 Oct 2002 19:54:27 -0000 1.2
+++ readme 17 May 2004 16:24:51 -0000 1.3
@@ -14,7 +14,7 @@
3. Run the sample.
Finally, to run the client, run:
- java samples.client.DynamicInvoker http://www.xmethods.net/sd/2001/TemperatureService.wsdl getTemp 02067
- java samples.client.DynamicInvoker http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl getQuote IBM
java samples.client.DynamicInvoker http://mssoapinterop.org/asmx/xsd/round4XSD.wsdl echoString "Hello World!!!"
java samples.client.DynamicInvoker http://samples.gotdotnet.com/quickstart/aspplus/samples/services/MathService/VB/MathService.asmx?WSDL Add 3 4
+ http://api.google.com/GoogleSearch.wsdl doGoogleSearch 00000000000000000000000000000000 davanum 0 10 false "" false "" latin1 latin1
+ [NOTE: Replace the 00000 with your google api key]
supporting
Posted by Aleksander Slominski <as...@cs.indiana.edu>.
dims@apache.org wrote:
>http://samples.gotdotnet.com/quickstart/aspplus/samples/services/MathService/VB/MathService.asmx?WSDL Add 3 4
>
>
hi Dims,
do you know what is the status of this WSDL file - it seems it uses
*incorrect* style='document' on soap:binding
(allowed is* style="rpc|document"* only as per
http://www.w3.org/TR/wsdl#_soap:binding)
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
shouldnt AXIS generate at least warning that it is incorrect style
(maybe AXIS already does it)?
thanks.
alek
ps. here is whole WSDL - did i miss something?
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
<s:element name="Add">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="A" type="s:float" />
<s:element minOccurs="1" maxOccurs="1" name="B" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="AddResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="AddResult" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Subtract">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="A" type="s:float" />
<s:element minOccurs="1" maxOccurs="1" name="B" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="SubtractResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="SubtractResult" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Multiply">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="A" type="s:float" />
<s:element minOccurs="1" maxOccurs="1" name="B" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MultiplyResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="MultiplyResult" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Divide">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="A" type="s:float" />
<s:element minOccurs="1" maxOccurs="1" name="B" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="DivideResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="DivideResult" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="float" type="s:float" />
</s:schema>
</types>
<message name="AddSoapIn">
<part name="parameters" element="s0:Add" />
</message>
<message name="AddSoapOut">
<part name="parameters" element="s0:AddResponse" />
</message>
<message name="SubtractSoapIn">
<part name="parameters" element="s0:Subtract" />
</message>
<message name="SubtractSoapOut">
<part name="parameters" element="s0:SubtractResponse" />
</message>
<message name="MultiplySoapIn">
<part name="parameters" element="s0:Multiply" />
</message>
<message name="MultiplySoapOut">
<part name="parameters" element="s0:MultiplyResponse" />
</message>
<message name="DivideSoapIn">
<part name="parameters" element="s0:Divide" />
</message>
<message name="DivideSoapOut">
<part name="parameters" element="s0:DivideResponse" />
</message>
<message name="AddHttpGetIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="AddHttpGetOut">
<part name="Body" element="s0:float" />
</message>
<message name="SubtractHttpGetIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="SubtractHttpGetOut">
<part name="Body" element="s0:float" />
</message>
<message name="MultiplyHttpGetIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="MultiplyHttpGetOut">
<part name="Body" element="s0:float" />
</message>
<message name="DivideHttpGetIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="DivideHttpGetOut">
<part name="Body" element="s0:float" />
</message>
<message name="AddHttpPostIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="AddHttpPostOut">
<part name="Body" element="s0:float" />
</message>
<message name="SubtractHttpPostIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="SubtractHttpPostOut">
<part name="Body" element="s0:float" />
</message>
<message name="MultiplyHttpPostIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="MultiplyHttpPostOut">
<part name="Body" element="s0:float" />
</message>
<message name="DivideHttpPostIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="DivideHttpPostOut">
<part name="Body" element="s0:float" />
</message>
<portType name="MathServiceSoap">
<operation name="Add">
<input message="s0:AddSoapIn" />
<output message="s0:AddSoapOut" />
</operation>
<operation name="Subtract">
<input message="s0:SubtractSoapIn" />
<output message="s0:SubtractSoapOut" />
</operation>
<operation name="Multiply">
<input message="s0:MultiplySoapIn" />
<output message="s0:MultiplySoapOut" />
</operation>
<operation name="Divide">
<input message="s0:DivideSoapIn" />
<output message="s0:DivideSoapOut" />
</operation>
</portType>
<portType name="MathServiceHttpGet">
<operation name="Add">
<input message="s0:AddHttpGetIn" />
<output message="s0:AddHttpGetOut" />
</operation>
<operation name="Subtract">
<input message="s0:SubtractHttpGetIn" />
<output message="s0:SubtractHttpGetOut" />
</operation>
<operation name="Multiply">
<input message="s0:MultiplyHttpGetIn" />
<output message="s0:MultiplyHttpGetOut" />
</operation>
<operation name="Divide">
<input message="s0:DivideHttpGetIn" />
<output message="s0:DivideHttpGetOut" />
</operation>
</portType>
<portType name="MathServiceHttpPost">
<operation name="Add">
<input message="s0:AddHttpPostIn" />
<output message="s0:AddHttpPostOut" />
</operation>
<operation name="Subtract">
<input message="s0:SubtractHttpPostIn" />
<output message="s0:SubtractHttpPostOut" />
</operation>
<operation name="Multiply">
<input message="s0:MultiplyHttpPostIn" />
<output message="s0:MultiplyHttpPostOut" />
</operation>
<operation name="Divide">
<input message="s0:DivideHttpPostIn" />
<output message="s0:DivideHttpPostOut" />
</operation>
</portType>
<binding name="MathServiceSoap" type="s0:MathServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="Add">
<soap:operation soapAction="http://tempuri.org/Add" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="Subtract">
<soap:operation soapAction="http://tempuri.org/Subtract" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="Multiply">
<soap:operation soapAction="http://tempuri.org/Multiply" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="Divide">
<soap:operation soapAction="http://tempuri.org/Divide" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<binding name="MathServiceHttpGet" type="s0:MathServiceHttpGet">
<http:binding verb="GET" />
<operation name="Add">
<http:operation location="/Add" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Subtract">
<http:operation location="/Subtract" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Multiply">
<http:operation location="/Multiply" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Divide">
<http:operation location="/Divide" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
</binding>
<binding name="MathServiceHttpPost" type="s0:MathServiceHttpPost">
<http:binding verb="POST" />
<operation name="Add">
<http:operation location="/Add" />
<input>
<mime:content type="application/x-www-form-urlencoded" />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Subtract">
<http:operation location="/Subtract" />
<input>
<mime:content type="application/x-www-form-urlencoded" />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Multiply">
<http:operation location="/Multiply" />
<input>
<mime:content type="application/x-www-form-urlencoded" />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Divide">
<http:operation location="/Divide" />
<input>
<mime:content type="application/x-www-form-urlencoded" />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
</binding>
<service name="MathService">
<port name="MathServiceSoap" binding="s0:MathServiceSoap">
<soap:address location="http://samples.gotdotnet.com/quickstart/aspplus/samples/services/MathService/VB/MathService.asmx" />
</port>
<port name="MathServiceHttpGet" binding="s0:MathServiceHttpGet">
<http:address location="http://samples.gotdotnet.com/quickstart/aspplus/samples/services/MathService/VB/MathService.asmx" />
</port>
<port name="MathServiceHttpPost" binding="s0:MathServiceHttpPost">
<http:address location="http://samples.gotdotnet.com/quickstart/aspplus/samples/services/MathService/VB/MathService.asmx" />
</port>
</service>
</definitions>
--
The best way to predict the future is to invent it - Alan Kay
supporting
Posted by Aleksander Slominski <as...@cs.indiana.edu>.
dims@apache.org wrote:
>http://samples.gotdotnet.com/quickstart/aspplus/samples/services/MathService/VB/MathService.asmx?WSDL Add 3 4
>
>
hi Dims,
do you know what is the status of this WSDL file - it seems it uses
*incorrect* style='document' on soap:binding
(allowed is* style="rpc|document"* only as per
http://www.w3.org/TR/wsdl#_soap:binding)
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
shouldnt AXIS generate at least warning that it is incorrect style
(maybe AXIS already does it)?
thanks.
alek
ps. here is whole WSDL - did i miss something?
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
<s:element name="Add">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="A" type="s:float" />
<s:element minOccurs="1" maxOccurs="1" name="B" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="AddResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="AddResult" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Subtract">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="A" type="s:float" />
<s:element minOccurs="1" maxOccurs="1" name="B" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="SubtractResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="SubtractResult" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Multiply">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="A" type="s:float" />
<s:element minOccurs="1" maxOccurs="1" name="B" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MultiplyResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="MultiplyResult" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Divide">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="A" type="s:float" />
<s:element minOccurs="1" maxOccurs="1" name="B" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="DivideResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="DivideResult" type="s:float" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="float" type="s:float" />
</s:schema>
</types>
<message name="AddSoapIn">
<part name="parameters" element="s0:Add" />
</message>
<message name="AddSoapOut">
<part name="parameters" element="s0:AddResponse" />
</message>
<message name="SubtractSoapIn">
<part name="parameters" element="s0:Subtract" />
</message>
<message name="SubtractSoapOut">
<part name="parameters" element="s0:SubtractResponse" />
</message>
<message name="MultiplySoapIn">
<part name="parameters" element="s0:Multiply" />
</message>
<message name="MultiplySoapOut">
<part name="parameters" element="s0:MultiplyResponse" />
</message>
<message name="DivideSoapIn">
<part name="parameters" element="s0:Divide" />
</message>
<message name="DivideSoapOut">
<part name="parameters" element="s0:DivideResponse" />
</message>
<message name="AddHttpGetIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="AddHttpGetOut">
<part name="Body" element="s0:float" />
</message>
<message name="SubtractHttpGetIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="SubtractHttpGetOut">
<part name="Body" element="s0:float" />
</message>
<message name="MultiplyHttpGetIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="MultiplyHttpGetOut">
<part name="Body" element="s0:float" />
</message>
<message name="DivideHttpGetIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="DivideHttpGetOut">
<part name="Body" element="s0:float" />
</message>
<message name="AddHttpPostIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="AddHttpPostOut">
<part name="Body" element="s0:float" />
</message>
<message name="SubtractHttpPostIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="SubtractHttpPostOut">
<part name="Body" element="s0:float" />
</message>
<message name="MultiplyHttpPostIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="MultiplyHttpPostOut">
<part name="Body" element="s0:float" />
</message>
<message name="DivideHttpPostIn">
<part name="A" type="s:string" />
<part name="B" type="s:string" />
</message>
<message name="DivideHttpPostOut">
<part name="Body" element="s0:float" />
</message>
<portType name="MathServiceSoap">
<operation name="Add">
<input message="s0:AddSoapIn" />
<output message="s0:AddSoapOut" />
</operation>
<operation name="Subtract">
<input message="s0:SubtractSoapIn" />
<output message="s0:SubtractSoapOut" />
</operation>
<operation name="Multiply">
<input message="s0:MultiplySoapIn" />
<output message="s0:MultiplySoapOut" />
</operation>
<operation name="Divide">
<input message="s0:DivideSoapIn" />
<output message="s0:DivideSoapOut" />
</operation>
</portType>
<portType name="MathServiceHttpGet">
<operation name="Add">
<input message="s0:AddHttpGetIn" />
<output message="s0:AddHttpGetOut" />
</operation>
<operation name="Subtract">
<input message="s0:SubtractHttpGetIn" />
<output message="s0:SubtractHttpGetOut" />
</operation>
<operation name="Multiply">
<input message="s0:MultiplyHttpGetIn" />
<output message="s0:MultiplyHttpGetOut" />
</operation>
<operation name="Divide">
<input message="s0:DivideHttpGetIn" />
<output message="s0:DivideHttpGetOut" />
</operation>
</portType>
<portType name="MathServiceHttpPost">
<operation name="Add">
<input message="s0:AddHttpPostIn" />
<output message="s0:AddHttpPostOut" />
</operation>
<operation name="Subtract">
<input message="s0:SubtractHttpPostIn" />
<output message="s0:SubtractHttpPostOut" />
</operation>
<operation name="Multiply">
<input message="s0:MultiplyHttpPostIn" />
<output message="s0:MultiplyHttpPostOut" />
</operation>
<operation name="Divide">
<input message="s0:DivideHttpPostIn" />
<output message="s0:DivideHttpPostOut" />
</operation>
</portType>
<binding name="MathServiceSoap" type="s0:MathServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="Add">
<soap:operation soapAction="http://tempuri.org/Add" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="Subtract">
<soap:operation soapAction="http://tempuri.org/Subtract" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="Multiply">
<soap:operation soapAction="http://tempuri.org/Multiply" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="Divide">
<soap:operation soapAction="http://tempuri.org/Divide" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<binding name="MathServiceHttpGet" type="s0:MathServiceHttpGet">
<http:binding verb="GET" />
<operation name="Add">
<http:operation location="/Add" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Subtract">
<http:operation location="/Subtract" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Multiply">
<http:operation location="/Multiply" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Divide">
<http:operation location="/Divide" />
<input>
<http:urlEncoded />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
</binding>
<binding name="MathServiceHttpPost" type="s0:MathServiceHttpPost">
<http:binding verb="POST" />
<operation name="Add">
<http:operation location="/Add" />
<input>
<mime:content type="application/x-www-form-urlencoded" />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Subtract">
<http:operation location="/Subtract" />
<input>
<mime:content type="application/x-www-form-urlencoded" />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Multiply">
<http:operation location="/Multiply" />
<input>
<mime:content type="application/x-www-form-urlencoded" />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
<operation name="Divide">
<http:operation location="/Divide" />
<input>
<mime:content type="application/x-www-form-urlencoded" />
</input>
<output>
<mime:mimeXml part="Body" />
</output>
</operation>
</binding>
<service name="MathService">
<port name="MathServiceSoap" binding="s0:MathServiceSoap">
<soap:address location="http://samples.gotdotnet.com/quickstart/aspplus/samples/services/MathService/VB/MathService.asmx" />
</port>
<port name="MathServiceHttpGet" binding="s0:MathServiceHttpGet">
<http:address location="http://samples.gotdotnet.com/quickstart/aspplus/samples/services/MathService/VB/MathService.asmx" />
</port>
<port name="MathServiceHttpPost" binding="s0:MathServiceHttpPost">
<http:address location="http://samples.gotdotnet.com/quickstart/aspplus/samples/services/MathService/VB/MathService.asmx" />
</port>
</service>
</definitions>
--
The best way to predict the future is to invent it - Alan Kay