You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Boxiong Ding <bo...@yahoo.com> on 2008/06/18 03:15:50 UTC

MTOM with large file on client side

I have a service that imports large data. On server side, I followed the MTOM doc (http://cwiki.apache.org/CXF20DOC/mtom.html) to enable mtom and use DataHandler. And I can transfer file with no problem.

Now I want to test my service on client side. I followed the same doc for client set up, and it works with small files but always fails with large files (1GB).

My understanding is that client will send request using attachment for the large data since I turned on MTOM, but actually all data got inlined. Besides, since I am using DataHandler/AttatchmentDataSource/FileInputStream, I assume client won't construct the whole request object in memory. Instead, it should send request/data while reading the data from file. But I don't think it works like this since I always got heap overflow error and nothing is sent.

Do any one know how it is supposed to work?

Boxiong



      

Re: MTOM with large file on client side

Posted by Daniel Kulp <dk...@apache.org>.
On Jun 17, 2008, at 9:15 PM, Boxiong Ding wrote:

> I have a service that imports large data. On server side, I followed  
> the MTOM doc (http://cwiki.apache.org/CXF20DOC/mtom.html) to enable  
> mtom and use DataHandler. And I can transfer file with no problem.
>
> Now I want to test my service on client side. I followed the same  
> doc for client set up, and it works with small files but always  
> fails with large files (1GB).
>
> My understanding is that client will send request using attachment  
> for the large data since I turned on MTOM, but actually all data got  
> inlined.

If it's inlined, then it looks like mtom isn't completely turned on  
correctly.   That's definitely the first thing to look at.   If  
something that large is inlined, that will definitely be a problem.

If you're using 2.1, you might want to just try adding a @MTOM  
annotation to the interface.    If you could debug into the  
AttachmentOutInterceptor to make sure it thinks mtom is turned on,  
that would be great as well.   (also, try 2.1.1 which we are voting on  
now: http://www.nabble.com/-VOTE--Release-CXF-2.1.1-to17911209.html ,   
I think the jaxws:properties method listed at the bottom of that page  
was broken in 2.1, but fixed in 2.1.1.)

Dan


> Besides, since I am using DataHandler/AttatchmentDataSource/ 
> FileInputStream, I assume client won't construct the whole request  
> object in memory. Instead, it should send request/data while reading  
> the data from file. But I don't think it works like this since I  
> always got heap overflow error and nothing is sent.
>
> Do any one know how it is supposed to work?
>
> Boxiong
>
>
>

---
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog