On Tuesday, January 31, 2012 3:33:10 PM Fabien Baligand wrote:
> Hi,
> 
> When I use my CXF client, configured with MTOM enabled, to get a 5OMb file
> ; I note that CXF downloads all the attachment content to a temp file, and
> then, give me the InputStream to the temp file.
> 
> In my case, I don't want CXF stores the content to a temp file before
> giving me access to it : I want CXF to give me directly the attachment's
> inputstream from the HTTP stream.
> I need that because I pipe the atttachment HTTP stream to another stream in
> real time.
> 
> Does someone know the CXF client configuration to set to not use a temp
> file for an attachment but directly give access to attachment HTTP stream ?
> 
> To be more clear, my code is the following :
> 
> DataHandler archiveContent = myWSClient.getArchiveContent(archiveId);
> InputStream archiveStream = archiveContent.getInputStream();
> 
> My problem is in the second line, CXF doesn't return me InputStream still
> he has fully downloaded the archive content in a temp file.

It SHOULD provide the actual HTTP stream by default unless there is something 
occurring that would require it not to.   The stuff I know off the top of my 
head are:

1) Schema validation turned on - if you turn on schema validation, we have to 
buffer the attachment because the validation will actually consume the stream.  
 

2) JAX-WS handlers (SAAJ model requires all the attachments up front)

3) WS-Security (SAAJ)

4) Logging



-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to