sure. will look into it. however, i got the same code running in a different environment. i am not sure if this has to do with the differences in the versions of dependencies.
On Wed, Apr 27, 2011 at 5:00 PM, Sergey Beryozkin <[email protected]>wrote: > Here is what I'm seeing in my test: > > POST /bookstore/books/fileform2 HTTP/1.1 > Content-Type: multipart/form-data; > boundary=---------------------------1774014288799809133756375422 > User-Agent: Jakarta Commons-HttpClient/3.1 > Host: localhost:8081 > Content-Length: 331 > > -----------------------------1774014288799809133756375422 > Content-Disposition: form-data; name="title" > > test > -----------------------------1774014288799809133756375422 > Content-Disposition: form-data; name="file"; filename="test.txt" > Content-Type: text/plain > > file content > > -----------------------------1774014288799809133756375422-- > > Response (number of parts, as in your test code): > > HTTP/1.1 200 OK > Content-Type: text/plain > Date: Wed, 27 Apr 2011 11:15:54 GMT > Content-Length: 1 > Server: Jetty(7.3.1.v20110307) > > 2 > > > There is only difference, Content-Length in my test is '331', in your > case it is 342. > The question is, where is the difference coming from ? If you save the > part of the log starting from the first part, > > "-----------------------------1774014288799809133756375422", > immediately after Content-Length and the empty line, > and ending with the final closing boundary, > "-----------------------------1774014288799809133756375422--", to a > file, then you can see its length is 331. > > Can you look into it ? > > Cheers, Sergey > > > > On Tue, Apr 26, 2011 at 11:52 AM, Shashank Rachamalla > <[email protected]> wrote: > > > > > > On Tue, Apr 26, 2011 at 4:18 PM, Sergey Beryozkin <[email protected]> > > wrote: > >> > >> Hi > >> > >> On Tue, Apr 26, 2011 at 11:11 AM, Shashank Rachamalla > >> <[email protected]> wrote: > >> > Hi > >> > > >> > i have made the following changes but the exception still gets caught: > >> > > >> > @Override > >> > @POST > >> > @Consumes(MediaType.MULTIPART_FORM_DATA) > >> > public Response saveForm(MultipartBody body) { > >> > System.out.println(body.getAllAttachments().size()); > >> > return Response.status(Response.Status.OK).build(); > >> > } > >> > > >> > > >> > >> I have a nearly identical test resource (a single file case), please see > >> > >> > >> > http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/attachmentFormJsonFile > > > > thanks. will check it out. > > > >> > >> Can you please send me the tcpmon log as an attachment ? There must be > >> some extra space somewhere or something like that, but it can be > >> spotted during the debugging process... > > > > i have attached the log > > > >> > >> Cheers, Sergey > >> > >> > On Tue, Apr 26, 2011 at 3:19 PM, Shashank Rachamalla < > >> > [email protected]> wrote: > >> > > >> >> Hi > >> >> > >> >> thanks for replying. comments inline. > >> >> > >> >> > >> >> On Tue, Apr 26, 2011 at 2:52 PM, Sergey Beryozkin > >> >> <[email protected]>wrote: > >> >> > >> >>> Hi > >> >>> > >> >>> On Tue, Apr 26, 2011 at 9:58 AM, Shashank Rachamalla > >> >>> <[email protected]> wrote: > >> >>> > Hi > >> >>> > > >> >>> > Can anyone please let me know if I have done something wrong > here.. > >> >>> > > >> >>> > *I have exposed the following simple service method ( using cxf > >> >>> > 2.3.3 ) > >> >>> * > >> >>> > > >> >>> > @Override > >> >>> > @POST > >> >>> > @Consumes(MediaType.MULTIPART_FORM_DATA) > >> >>> > public Response saveForm() { > >> >>> > > >> >>> > System.out.println(AttachmentUtils.getAttachments(mc).size()); > >> >>> > return Response.status(Response.Status.OK).build(); > >> >>> > } > >> >>> > >> >>> I think the problem might be related to the fact you are calling > >> >>> > >> >>> AttachmentUtils.getAttachments(mc) directly, I'm assuming 'mc' is > >> >>> referring to injected MessageContext. > >> >>> > >> >>> yes, mc is referring to injected MessageContext > >> >> > >> >> > >> >>> I can actually see few tests where AttachmentUtils is called > directly > >> >>> in the tests, ex, for simple form-data submissions: > >> >>> > >> >>> MultivaluedMap<String, String> data = > >> >>> AttachmentUtils.populateFormMap(context); > >> >>> and > >> >>> AttachmentUtils.getMultipartBody(context) > >> >>> > >> >>> but may be you have to explicitly add MultipartBody as a method > >> >>> parameter - this will ensure MultipartProvider is invoked and it > does > >> >>> some multipart/form-data related processing, so it may help. > >> >>> > >> >> > >> >> fine. i will try this out now. > >> >> > >> >> > >> >>> More comments inline > >> >>> > >> >>> > > >> >>> > *The following is a request ( captured through tcpmon ) to the > above > >> >>> defined > >> >>> > service method:* ( it is a form post ) > >> >>> > > >> >>> > POST /api/v1/rest HTTP/1.1 > >> >>> > Host: localhost:8081 > >> >>> > User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) > >> >>> > Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3 > >> >>> > Accept: > >> >>> > text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 > >> >>> > Accept-Language: en-us,en;q=0.5 > >> >>> > Accept-Encoding: gzip,deflate > >> >>> > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 > >> >>> > Keep-Alive: 115 > >> >>> > Connection: keep-alive > >> >>> > Referer: http://localhost/form.html > >> >>> > Content-Type: multipart/form-data; > >> >>> > boundary=---------------------------91021093918280655661679102041 > >> >>> > >> >> > >> >> tcpmon shows boundary on the same line. > >> >> > >> >> > >> >>> Can it be a problem ? I'm not sure if the boundary parameter is > shown > >> >>> on the next line by tcpmon or actually located on the next line, > which > >> >>> is probably correct, but may be it's confusing CXF a bit ? > >> >>> > >> >>> > Content-Length: 345 > >> >>> > > >> >>> > -----------------------------91021093918280655661679102041 > >> >>> > Content-Disposition: form-data; name="title" > >> >>> > > >> >>> > test > >> >>> > -----------------------------91021093918280655661679102041 > >> >>> > Content-Disposition: form-data; name="file"; filename="test.txt" > >> >>> > Content-Type: text/plain > >> >>> > > >> >>> > file content > >> >>> > > >> >>> > -----------------------------91021093918280655661679102041-- > >> >>> > > >> >>> > >> >>> Can it be that the extra line between 'file content' and the final > >> >>> boundary is present ? > >> >>> > >> >>> > > >> >>> > *The following is the response received for above request:* > >> >>> > > >> >>> > <ns1:XMLFault> > >> >>> > <ns1:faultstring> > >> >>> > java.io.IOException: Couldn't find MIME boundary: > >> >>> > -----------------------------91021093918280655661679102041 > >> >>> > </ns1:faultstring> > >> >>> > </ns1:XMLFault> > >> >>> > > >> >>> > Thanks in advance ! > >> >>> > > >> >>> > >> >>> Please try adding MultipartBody to the method signature and I'll do > a > >> >>> test a bit later on too, > >> >>> > >> >>> thanks, Sergey > >> >>> > >> >>> > >> >>> > > >> >>> > Regards, > >> >>> > Shashank Rachamalla > >> >>> > > >> >>> > >> >> > >> >> > >> >> > >> >> -- > >> >> Regards, > >> >> Shashank Rachamalla > >> >> > >> > > >> > > >> > > >> > -- > >> > Regards, > >> > Shashank Rachamalla > >> > > >> > >> > >> > >> -- > >> Sergey Beryozkin > >> > >> Application Integration Division of Talend > >> http://sberyozkin.blogspot.com > > > > > > > > -- > > Regards, > > Shashank Rachamalla > > > > > > -- > Sergey Beryozkin > > Application Integration Division of Talend > http://sberyozkin.blogspot.com > -- Regards, Shashank Rachamalla
