By the way if the target server understands X-HTTP-Method-Override
header (CXF does) then
as a workaround you can use POST and also set

X-HTTP-Method-Override: PUT

Sergey

On Mon, Jun 27, 2011 at 9:43 PM, Sergey Beryozkin <[email protected]> wrote:
> Hi
>
> On Mon, Jun 27, 2011 at 7:25 PM, Stephen Evanchik <[email protected]> wrote:
>> Hi everyone,
>>
>> I am using CXF 2.4.0 and having trouble issuing a PUT with a large
>> payload (100MB+ but this is dependent on the JVM heap size). I receive
>> an OutOfMemoryError originating from
>> sun.net.www.http.PosterOutputStream because the Content-Length is not
>> sent and chunking is not enabled.
>>
>> My question: How can I stream the data in the circumstances when I
>> know the entity length and enable chunking when I do not know the
>> entity length?
>>
>> I have traced the code and found that in HTTPConduit.java the
>> following TODO is present:
>>
>>    public void prepare(Message message) throws IOException {
>> ....
>>        // DELETE does not work and empty PUTs cause misleading exceptions
>>        // if chunking is enabled
>>        // TODO : ensure chunking can be enabled for non-empty PUTs -
>> if requested
>>        if (connection.getRequestMethod().equals("POST")
>>            && csPolicy.isAllowChunking()) {
>> ....
>>
>
> I recall adding these comments but I don't remember why I decided not
> to handle PUTs too - most likely it has to be fixed - will be for
> 2.4.2
>
>> which seems to indicate that there is no way to accomplish this
>> without modifying HTTPConduit. Is that correct?
>>
>> Could I create an implementation of AbstractPhaseInterceptor bound to
>> Phase.PREPARE_SEND_ENDING and use:
>>
>>         HttpURLConnection conn = 
>> message.get(HttpConduit.KEY_HTTP_CONNECTION);
>>         configure(conn);
>>
>>         message.setContent(OutputStream.class, <Stream implementation
>> that does what I want with conn>
>>
>> ?
>
> This latter option may work. Consider trying multiparts as well
>
> Thanks, Sergey
>
>>
>> Thanks for any help you can offer.
>>
>> Stephen
>>
>>
>> --
>> Stephen Evanchik
>> http://stephen.evanchik.com
>>
>
>
>
> --
> Sergey Beryozkin
>
> Application Integration Division of Talend
> http://sberyozkin.blogspot.com
>

Reply via email to