I have implemented a special class which allows streaming of complex bean types in an RPC call, but have found that AXIS stores the whole message in memory before sending / deserializing it anyway, which defeats the whole purpose of what I am trying to do.
 
The first problem is that AXIS doesn't support chunked http messages, so the content length must be known before sending it.
 
QUESTION 1:  Are there any plans to implement chunked transfer encoding soon?
 
The SOAPPart class stores the entire message as a byte array before it is sent across the wire, which apart from the reason above is unnecessary.
 
QUESTION 2:  Are there any plans to clean this up to allow direct streaming from the serializers onto the wire?
 
I have only researched the client side to see how and why the entire message is stored in memory before sending it.  I have also noticed that the server stores it all in memory before deserializing it, but I haven't investigated whether there is any good reason for this.
 
QUESTION 3:  If AXIS won't support this any time soon, which I assume is the case, does anyone know whether the Sun JAXRPC reference implementation suffers the same problem?  I would also like to know whether the MS .NET implementation has the same problem if anyone knows about it.
 
QUESTION 4:  All I really want to do is send a large array of structured data in a platform independent way.  I would like to use the standard RPC encoding of SOAP to avoid having to define my own XML schemas for the data, but I'm not sure whether today's SOAP implementations are mature enough to use for this purpose.  What do other people do in this situation?  I can't imagine I'm the only one.
 
I would be more than happy to share my streaming serialization/deserialization code if anyone is interested, although it is not of much use with the current version of axis.
 
Thanks
Martin Jericho
 
 
 

Reply via email to