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