Thanks so far. ;)

But this does not solve my problem. What a pitty.
I have no problems sending and receiving single binaries as
a bas64Binary or bas64. Whatever xsd or soapenc. 
But the hard thing for me to realize is the stuff with an
array of binaries. It simply does not work for me. No matter
what configuration I am using. And I have tried lots of them.

Hmm. I am stucked.

Cheers anyway
Marc

-----Urspr�ngliche Nachricht-----
Von: Anand Natrajan [mailto:[EMAIL PROTECTED] 
Gesendet: Mittwoch, 11. August 2004 17:27
An: [EMAIL PROTECTED]
Betreff: Re: How to send binaries as base64?


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