Downloading huge binary files using MTOM
Stadelmann Josef <[email protected]>
| Newsgroups | gmane.text.xml.axis.user |
|---|---|
| Message-ID | <DB774472C2709D43B623B28A47252E225578D989@wwcemr01.chres1.doleni.net> |
Hi,
I have successfully developed and we use it since years, a Binary File Service, based on JAXWS/JAXB, using MTOM to download large binary data. At the service side there is a DataHandler involved which reads the bytes into a byte[] called ImageDepot. (The axis2 MTOM example). The problem is now that the size of this byte array might have become too small. At least I get that impression at the client side, which is a WCF client using a proxy generated by the svcutil asking for the WSDL data from the running SpezplaFS (File Service).
In short: all works fine until at the client the byte[] array becomes too small to keep more 2^31 bytes of data.
In short: How can I use MTOM and stream bytes from huge binary files, files with a size up to long.MaxValue, from a service to a client by using a64K byte buffer?
The client should be able to call this service, the stub, only once without the need to manage junks.
At the client I would see something like
BufferdInputStream bis = new BufferedInputStream(new ... what ever stream would talk with my MTOM streaming service ...);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(datafile));
Byte[] buffer;
While (! bis.wead(buffer, 0, Size)== 0) {
bos.write(buffer, 0, Size);
}
If (!bis==null) bis.Close();
If (!bos==null) bos.Close();
And pointers to a working example are very welcome
Thank you
Josef