Marc,

I had a similar problem, but some details are different. In my case, I had
to send a single binary, not an array of them. Also, I was retrieving the
binary from the server, not sending them to the server.

When I exposed the operation within a doc/lit service, I saw exactly what
you see - each byte gets its own tag, bloating the returned results.

When I exposed the operation within an rpc/enc service, I saw exactly what
you want - data gets base64-encoded within the SOAP response.

On looking through the WSDLs for both cases, I saw that in the doc/lit case,
the return value was essentially "sequence of bytes", but for the rpc/enc
case, it was "base64binary". Perhaps that accounts for the differences.

Hope that helps.

Anand

On Wed, 11 Aug 2004, Marc Schmidt wrote:

: Hi All.
:
: To keep it short.
:
: I want to send an array of binaries from a java app to a soap server
: using
: axis.
:
: Here the part of the wsdl:
:
: <complexType name="ArrayOf_xsd_base64Binary">
:       <complexContent>
:               <restriction base="soapenc:Array">
:                       <attribute ref="soapenc:arrayType"
: wsdl:arrayType="xsd:base64Binary[]"/>
:               </restriction>
:       </complexContent>
: </complexType>
: <complexType name="PictureContainer">
:       <sequence>
:               <element name="allPages" nillable="true"
: type="impl:ArrayOf_xsd_base64Binary"/>
:       </sequence>
: </complexType>
:
: Through the axis.wsdl compiler it mapps perfectly to byte[][].
:
: But the xml-output eventually evolving looks like this:
:
:   <multiRef id="id1" soapenc:root="0"
: soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
: xsi:type="ns3:STGPictureContainerVO" xmlns:ns3="http://bla";
: xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";>
:    <allPages xsi:type="soapenc:Array" soapenc:arrayType="xsd:byte[][1]">
:     <item soapenc:arrayType="xsd:byte[15072]">
:      <item>0</item>
:      <item>0</item>
:      <item>-125</item>
:      <item>48</item>
:       ...
:
: I do not expect each and every single byte to be tagged. I would rather
: like to see
: something like a stream:
:           <allPages xsi:type="soapenc:Array"
: soapenc:arrayType="xsd:base64Binary[1]">
:             <item xsi:type="xsd:base64Binary">
:
: lGODdhwAb7CJAAAP///wAAACwAAAAAwAb7CAAC/4SPqcvtD6OctNqLs968
:               </item>
:           </allPages>
:
: How do I get there? I cannot attach the binaries using MIME. They
: unfortunately need
: to be encoded base64 and contained in the soap envelope.
:
: Help of any type is appreciated.
:
: Cheers
:
:
:
:
:
:

Reply via email to