The "content-length" header are really mandatory in specs ?

On 4/15/05, John Wilson <[EMAIL PROTECTED]> wrote:
> 
> On 15 Apr 2005, at 11:43, Henri Gomez wrote:
> 
> > XmlRpcServer provide an execute method which return a byte[] buffer,
> > ie :
> >
> >  public byte[] execute(InputStream is)
> >
> > It will be very usefull when embedding XML-RPC in a servlet engine, ie
> > Tomcat, to use directly the servlet OutputStream which could be
> > possible with a method like this :
> >
> >  public int execute(InputStream is, OutputStream os)
> >
> 
> XML-RPC is not well suited to dealing with very large payloads. The
> specification requires that the content-length header is used which
> means that the entire request or response has to be assembled in memory
> before it is sent (i.e. you can't use chunked encoding). In addition
> the Apache XML-RPC implementation uses the Apache Commons Base64 codec
> to encode and decode byte[] values. This has no way of dealing with
> byte streams so implementing your suggestion in a way which saves
> memory would be a very extensive job. As a rule of thumb I have found
> that you need free contiguous heap memory of four times the size of the
> array when you are receiving it and three times the size of the array
> when sending it.
> 
> If you are transferring large amounts of binary data you might consider
> sending a URL which points to the data and then doing a GET on the URL.
> 
> 
> John Wilson
> The Wilson Partnership
> http://www.wilson.co.uk
> 
>

Reply via email to