axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 17177] New: - Should never produce a null "holder" value (for IN/OUT args)
Date Tue, 18 Feb 2003 19:18:30 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17177>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17177

Should never produce a null "holder" value (for IN/OUT args)

           Summary: Should never produce a null "holder" value (for IN/OUT
                    args)
           Product: Axis
           Version: 1.0
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Serialization/Deserialization
        AssignedTo: axis-dev@ws.apache.org
        ReportedBy: sambrow@iname.com


Should never produce a null "holder" value (for IN/OUT args)

Suppose an application has an IN/OUT attachment argument (DataHandler). It has 
defined a DataHandlerHolder class (implements javax.xml.rpc.holders.Holder) to 
accomodate this parameter.  The WSDL names this parameter as "body".

This works fine normally but at least one major SOAP client (MS SOAP Toolkit 
3.0) causes the following problem...

When using their "high-level" API, if the client does not want to send an 
attachment to AXIS but it *does* want to receive one (via my IN/OUT argument), 
one would declare the variable something like (VB6 syntax)...

Dim Attachment As MSSOAPLib30.IAttachment

but don't assign it any value (since there is no attachment to send).

When the call is made (there are other arguments too)...

soapClient.callE3Encoded encodedParameters, encodedHeaders, Attachment

The resulting request contains a SOAP Envelope that does *not* contain any 
markup cooresponding to the "body" IN/OUT argument.  This is a bug in MS SOAP 
Toolkit 3.0 since they *should* output a construct like <body 
SOAPSDK2:nil="true"/>.  They seem to do this correctly for nil String values.

The result of this missing markup is that the DataHandlerHolder argument in the 
server-side method comes in as null!

This makes it impossible to fulfill the OUT aspect of this argument (can't send 
an attachment in my response).

To accomodate any such clients, makes sense (I think) to behave as if a <body 
SOAPSDK2:nil="true"/> was seen (allocate a DataHandlerHolder object with 
a "null" value).  This would allow you to send an OUT value for your argument.

My test concerns DataHandler but I think it makes sense to do the same for any 
argument that implements javax.xml.rpc.holders.Holder.

Thanks

-Sam

Mime
View raw message