axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James M Snell <>
Subject Axis WSDL Support Issue: WSDL SOAP Binding vs. SOAP RPC
Date Wed, 22 Jan 2003 00:20:03 GMT
Ok, another issue to chew over...

Currently, when initializing an org.apache.axis.client.Service object 
using a WSDL document, the method return part in the WSDL message 
definition MUST be named exactly the same as the element in the returned 
SOAP Envelope that contains the return value or else Axis will throw an 
error while parsing the return (because Axis serialization uses the WSDL 
part definition to figure out which QName to look for).... the error is 
thrown because Axis cannot find the element containing the return value.

While this is sufficient to satisify the WSDL specification constraint 
expressed in Section 3.5: "Each message part (parameter) appears under the 
wrapper, represented by an accessor named identically to the corresponding 
parameter of the call. Parts are arranged in the same order as the 
parameters of the call", it does cause somewhat of a conflict with the 
SOAP specification RPC binding which states in Section 7.1 "The name of 
the return value accessor is not significant". 
The behavior of the deserialization process should be changed to the 

1. First, attempt to find the return element using the WSDL message part 
2. If the return element cannot be found (e.g. when the name of the return 
element in the SOAP message does not equal the name of the return part in 
the WSDL message definition), then use the first child element as the 
return element.

Doing so will satisify both the WSDL and SOAP spec constraints.

- James Snell
     IBM Emerging Technologies
     (559) 587-1233 (office)
     (700) 544-9035 (t/l)
     Programming Web Services With SOAP
         O'Reilly & Associates, ISBN 0596000952

     Have I not commanded you? Be strong and courageous. 
     Do not be terrified, do not be discouraged, for the Lord your 
     God will be with you whereever you go.    - Joshua 1:9

View raw message