Answers embed below in <RJS>

Rich Scheuerle
XML & Web Services Development
512-838-5115  (IBM TL 678-5115)


                                                                                       
                                           
                      Sam                                                              
                                           
                      Ruby/Raleigh/IBM@        To:       [EMAIL PROTECTED]       
                                           
                      IBMUS                    cc:                                     
                                           
                                               Subject:  Re: AXIS/SOAP Interop Test 
Summary                                       
                      01/31/2002 10:57                                                 
                                           
                      AM                                                               
                                           
                      Please respond to                                                
                                           
                      axis-dev                                                         
                                           
                                                                                       
                                           
                                                                                       
                                           



Rich Scheuerle Jr wrote:
>
> The number of red failures in the last run: 35
> The number of red failures in the jan 1 run: 41

Great work!

> Void (SoapX4 and TclSoap both return elements with no values)

Open question: should we accept these resposes?

We accept an response containing an empty envelope from eSOAP.  We don't
accept the one from TclSOAP because it is explicitly marked as a an
xsd:int.  We don't accept the response from SoapX4 because there is
whitespace between the begin tag and the end tag.

<RJS> +1 to accepting both </RJS>

> Hex Binary (4s4c and 4s4c2.0 both return soapenc:base64)

Open question: we do automatic conversions in other cases (example: vector
=>array).  Should we consider doing the same thing here?

<RJS> It's not hard to do. What is the semantic difference between
xsd:hexBinary
and soapenc:base64 ?</RJS>

> Also there are more SOAP structArray problems.  Without the wire dumps
> its hard to tell what is going on, but I suspect that SOAP is now sending
> the arrays across with a type=ArrayOfSOAPStruct instead of
> type=soapenc:Array.

What is currently sent by Apache SOAP is accepted by a large number of
other end points.  In fact, with your fixes, we now accept
ArrayOfSOAPStruct in a response.  Is there any reason that we shouldn't
accept the same thing in a request?

<RJS>
Long explanation...

Before a serializer is invoked, the Serialization Context
setTypeAttributes is invoked which sets the xsi:type attribute.

Before yesterday, array types were not physically registered in the
type mapping registry, so the call to setTypeAttributes() would ALWAYS
be passed a soapenc:Array qname as the type.  The array serializer
then serializes the array using the SOAP 1.1 soapenc:Array format.

Now, array types are physically registered in the type mapping registry.
Thus the call to setTypeAttributes() could be something other than
soapenc:Array...i.e ArrayOfFoo.  When the array serializer is
invoked, it serializes the array using the soapenc:Array format.
But if the xsi:type was set to ArrayOfFoo, the remote receiver will get
messed up because it will receive a mixture of formats.  So
I changed the array serializer to force the xsi:type back to soapenc:Array,
which makes sense because our array serializer is currently designed to
produce just the soapenc:Array format.

You indicated yesterday that a change was made to Apache SOAP to
register array types.  I am concerned that they will run across this same
problem...and from last night's test it appears that they did.
See SOAP echoStructArray for SOAP RMI.  Also, the SOAP echoStructArray
call failed when calling Apache SOAP and Apache AXIS!

It would be nice to see the SOAP wire dumps for these cases.

</RJS>

> SOAP may need to apply the same fix that I did to the array serializer to
> force type=soapenc:Array.

Should this be forced?  It seems to me that ArrayOfSOAPStruct is not only
legal, but more specific (in oo terms, a subtype).  On the other hand,
forcing it to may increase interop.  On the other other hand (whoops! hand
fault.), forcing it makes it impossible to generate a whole class of legal
SOAP messages.

<RJS>
Forcing it is the proper solution for now and for interop.
Long term we could change the array serializer to use an
"ArrayOfSOAPStruct"
format along with the soapenc:Array format if we choose.
But it looks like more services accept the soapenc:Array format.

Comments ???
</RJS>


- Sam Ruby




Reply via email to