Senaka, The issue with the servlet transport is now fixed. See r823960 for details. Not sure though how this relates to the issue with truncated files mentioned by Amila (which is different from the empty base64 issue).
Andreas On Sat, Oct 10, 2009 at 15:37, Senaka Fernando <[email protected]> wrote: > Hi Andreas, > > On Sat, Oct 10, 2009 at 6:40 PM, Andreas Veithen > <[email protected]>wrote: > >> Hi Senaka, >> >> I've just completed the work on the MTOM/ADB issue discovered by Amila >> earlier this week. To summarize, this issue is triggered if the >> message is MTOM but contains unoptimized base64 data with length zero, >> i.e. empty elements of type base64 (in contrast to xop:Include >> elements pointing to empty attachments). >> > > I'll have a look at this. I simply ran the MTOM sample in Axis2, so I don't > think that the attachment was empty. > >> >> Do we now if the issue discussed here is also caused by this, or if it >> is a different problem? >> > > Not sure about this as yet. > >> >> Andreas >> >> PS: Just to rule out any obvious explanations: the Axiom snapshots on >> people.apache.org are outdated; are you sure that you built Axiom >> snapshots from the latest sources? >> > > Yes I have an svn checkout which I update at regular intervals. My local > maven repo therefore has a new snapshot. > > Thanks, > Senaka. > >> >> On Sat, Oct 10, 2009 at 10:03, Senaka Fernando <[email protected]> wrote: >> > Hi Andreas, >> > >> > Any update on this? I have had no luck so far with figuring out what >> could >> > be exact cause to this and do a neat fix. While we can introduce a >> > workaround and fix this, I don't think that it would be the best thing to >> > do. I will have another go at this during this weekend and see if I can >> find >> > a breakthrough. >> > >> > Thanks, >> > Senaka. >> > >> > On Mon, Oct 5, 2009 at 1:04 PM, Andreas Veithen >> > <[email protected]>wrote: >> > >> >> I will try to free up some time tonight to do a debugging session. >> >> >> >> Andreas >> >> >> >> On Sun, Oct 4, 2009 at 06:58, Senaka Fernando <[email protected]> wrote: >> >> > Folks, >> >> > >> >> > We need to get this fixed on Axis2. Andreas, do you have any idea to >> what >> >> > could be causing this issue? >> >> > >> >> > Thanks, >> >> > Senaka. >> >> > >> >> > On Tue, Sep 22, 2009 at 5:19 PM, Senaka Fernando <[email protected]> >> >> wrote: >> >> > >> >> >> Hi Andreas, >> >> >> >> >> >> Have you tested this with Axis2 deployed as a webapp? MTOM seems to >> work >> >> >> fine with the SimpleAxisServer but not when Axis2 is deployed as a >> >> webapp. >> >> >> Below is what I observed on TCPMon (first response is from the >> >> >> SimpleAxisServer). >> >> >> >> >> >> >> ------------------------------------------------------------------------ >> >> >> HTTP/1.1 200 OK >> >> >> Date: Mon, 21 Sep 2009 19:03:14 GMT >> >> >> Server: Simple-Server/1.1 >> >> >> Transfer-Encoding: chunked >> >> >> Content-Type: multipart/related; >> >> >> boundary=MIMEBoundaryurn_uuid_9645FCE52FDC6F4D931253559793956; >> >> >> type="application/xop+xml"; start="< >> >> >> 0.urn:uuid:[email protected]<0.urn%3auuid%[email protected]> >> <0.urn%3auuid%[email protected]<0.urn%253auuid%[email protected]> >> > >> >> <0.urn%3auuid%[email protected]<0.urn%253auuid%[email protected]> >> <0.urn%253auuid%[email protected]<0.urn%25253auuid%[email protected]> >> > >> >> >>"; >> >> >> start-info="text/xml" >> >> >> >> >> >> 202 >> >> >> --MIMEBoundaryurn_uuid_9645FCE52FDC6F4D931253559793956 >> >> >> Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" >> >> >> Content-Transfer-Encoding: binary >> >> >> Content-ID: >> >> >> <0.urn:uuid:[email protected]<0.urn%3auuid%[email protected]> >> <0.urn%3auuid%[email protected]<0.urn%253auuid%[email protected]> >> > >> >> <0.urn%3auuid%[email protected]<0.urn%253auuid%[email protected]> >> <0.urn%253auuid%[email protected]<0.urn%25253auuid%[email protected]> >> > >> >> >> >> >> >> >> >> >> >> >> >> <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope >> xmlns:soapenv=" >> >> >> http://schemas.xmlsoap.org/soap/envelope/ >> >> "><soapenv:Body><ns2:AttachmentResponse >> >> >> xmlns:ns2="http://ws.apache.org/axis2/mtomsample/">File saved >> >> >> >> succesfully.</ns2:AttachmentResponse></soapenv:Body></soapenv:Envelope> >> >> >> 3c >> >> >> >> >> >> --MIMEBoundaryurn_uuid_9645FCE52FDC6F4D931253559793956-- >> >> >> >> >> >> 0 >> >> >> >> ------------------------------------------------------------------------ >> >> >> HTTP/1.1 200 OK >> >> >> Server: Apache-Coyote/1.1 >> >> >> Content-Type: multipart/related; >> >> >> boundary=MIMEBoundaryurn_uuid_9E87539EB4CACBEB921253619434971; >> >> >> type="application/xop+xml"; start="< >> >> >> 0.urn:uuid:[email protected]<0.urn%3auuid%[email protected]> >> <0.urn%3auuid%[email protected]<0.urn%253auuid%[email protected]> >> > >> >> <0.urn%3auuid%[email protected]<0.urn%253auuid%[email protected]> >> <0.urn%253auuid%[email protected]<0.urn%25253auuid%[email protected]> >> > >> >> >>"; >> >> >> start-info="text/xml" >> >> >> Transfer-Encoding: chunked >> >> >> Date: Tue, 22 Sep 2009 11:37:15 GMT >> >> >> >> >> >> 202 >> >> >> --MIMEBoundaryurn_uuid_9E87539EB4CACBEB921253619434971 >> >> >> Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" >> >> >> Content-Transfer-Encoding: binary >> >> >> Content-ID: >> >> >> <0.urn:uuid:[email protected]<0.urn%3auuid%[email protected]> >> <0.urn%3auuid%[email protected]<0.urn%253auuid%[email protected]> >> > >> >> <0.urn%3auuid%[email protected]<0.urn%253auuid%[email protected]> >> <0.urn%253auuid%[email protected]<0.urn%25253auuid%[email protected]> >> > >> >> >> >> >> >> >> >> >> >> >> >> <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope >> xmlns:soapenv=" >> >> >> http://schemas.xmlsoap.org/soap/envelope/ >> >> "><soapenv:Body><ns2:AttachmentResponse >> >> >> xmlns:ns2="http://ws.apache.org/axis2/mtomsample/">File saved >> >> >> >> succesfully.</ns2:AttachmentResponse></soapenv:Body></soapenv:Envelope> >> >> >> 0 >> >> >> >> ----------------------------------------------------------------------- >> >> >> >> >> >> Thanks, >> >> >> Senaka. >> >> >> >> >> >> >> >> >> On Thu, Sep 3, 2009 at 1:05 PM, Andreas Veithen < >> >> [email protected] >> >> >> > wrote: >> >> >> >> >> >>> On Thu, Sep 3, 2009 at 05:51, Amila >> >> >>> Suriarachchi<[email protected]> wrote: >> >> >>> > On Thu, Sep 3, 2009 at 3:16 AM, Andreas Veithen >> >> >>> > <[email protected]>wrote: >> >> >>> > >> >> >>> >> Hi Amila, >> >> >>> >> >> >> >>> >> I implemented a service and a client according to your >> description, >> >> >>> >> but I'm unable to reproduce the issue. Any idea if this is a >> problem >> >> >>> >> at client side or in the server? >> >> >>> >> >> >> >>> > >> >> >>> > you mean you get exactly the same file size after being transfered >> by >> >> >>> MTOM? >> >> >>> > Hope you have tested >> >> >>> > with few binary files with different file sizes. >> >> >>> >> >> >>> Yes, I tested with different files with sizes ranging from a couple >> of >> >> >>> KB to several MB. They all got transferred correctly. >> >> >>> >> >> >>> > since there is no exception I have no idea about where could be >> the >> >> >>> problem >> >> >>> > is. Can the os be a problem? >> >> >>> > I am using Ubuntu linux. >> >> >>> >> >> >>> It could be some subtle problem depending on the OS (I tested on Mac >> >> >>> OS X), the JRE (I tested on Apple/Sun Java 1.5) or the JARs in the >> >> >>> classpath (On the client side, I tested with activation and javamail >> >> >>> from Geronimo and Sun, but there is no difference). >> >> >>> >> >> >>> > thanks, >> >> >>> > Amila. >> >> >>> > >> >> >>> > >> >> >>> >> Andreas >> >> >>> >> >> >> >>> >> On Tue, Sep 1, 2009 at 14:27, Amila >> >> >>> >> Suriarachchi<[email protected]> wrote: >> >> >>> >> > hi, >> >> >>> >> > I tested the MTOM with the Axis2 trunk with the following >> service >> >> >>> >> > >> >> >>> >> > public String sendFile(DataHandler dataHandler){ >> >> >>> >> > try { >> >> >>> >> > FileOutputStream fileOutputStream = new >> >> >>> >> > FileOutputStream("/home/amila/ec2-bak.tgz"); >> >> >>> >> > dataHandler.writeTo(fileOutputStream); >> >> >>> >> > fileOutputStream.flush(); >> >> >>> >> > fileOutputStream.close(); >> >> >>> >> > System.out.println("finish writting"); >> >> >>> >> > } catch (FileNotFoundException e) { >> >> >>> >> > e.printStackTrace(); >> >> >>> >> > } catch (IOException e) { >> >> >>> >> > e.printStackTrace(); >> >> >>> >> > } >> >> >>> >> > return "ok"; >> >> >>> >> > } >> >> >>> >> > >> >> >>> >> > with the service.xml to deploy >> >> >>> >> > >> >> >>> >> > <service name="MTOMService"> >> >> >>> >> > <schema schemaNamespace="http://org.apache.axis2/xsd" >> >> >>> >> > elementFormDefaultQualified="false"/> >> >> >>> >> > <messageReceivers> >> >> >>> >> > <messageReceiver mep=" >> >> >>> http://www.w3.org/2004/08/wsdl/in-only" >> >> >>> >> > >> >> >>> >> > >> class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> >> >> >>> >> > <messageReceiver mep=" >> >> >>> http://www.w3.org/2004/08/wsdl/in-out" >> >> >>> >> > >> >> >>> >> > class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> >> >> >>> >> > </messageReceivers> >> >> >>> >> > <parameter >> >> >>> >> > >> name="ServiceClass">test.lockhead.service.MTOMService</parameter> >> >> >>> >> > </service> >> >> >>> >> > >> >> >>> >> > Then I generate the code for this service with ADB and access >> it >> >> with >> >> >>> the >> >> >>> >> > following client >> >> >>> >> > >> >> >>> >> > private void testMTOM(){ >> >> >>> >> > try { >> >> >>> >> > MTOMServiceStub mtomServiceStub = new >> MTOMServiceStub(" >> >> >>> >> > >> >> >>> >> >> >> >>> >> >> >> http://localhost:8080/axis2/services/MTOMService.MTOMServiceHttpSoap12Endpoint/ >> >> >>> >> " >> >> >>> >> > ); >> >> >>> >> > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> >> >> >>> >> >> >> mtomServiceStub._getServiceClient().getOptions().setProperty(Constants.Configuration.ENABLE_MTOM, >> >> >>> >> > Constants.VALUE_TRUE); >> >> >>> >> > DataSource dataSource = new >> >> >>> >> > FileDataSource("/home/amila/ec2.tgz"); >> >> >>> >> > DataHandler dataHandler = new >> DataHandler(dataSource); >> >> >>> >> > >> >> >>> >> > mtomServiceStub.sendFile(dataHandler); >> >> >>> >> > } catch (AxisFault axisFault) { >> >> >>> >> > axisFault.printStackTrace(); >> >> >>> >> > } catch (java.rmi.RemoteException e) { >> >> >>> >> > e.printStackTrace(); >> >> >>> >> > } >> >> >>> >> > } >> >> >>> >> > >> >> >>> >> > every thing worked fine. Then I went the command prompt and >> >> compare >> >> >>> the >> >> >>> >> > sizes of the files >> >> >>> >> > >> >> >>> >> > am...@amila:~$ ls -all ec2-bak.tgz ec2.tgz >> >> >>> >> > -rw-r--r-- 1 amila amila 1990 2009-09-01 17:39 ec2-bak.tgz >> >> >>> >> > -rw-r--r-- 1 amila amila 2864 2009-09-01 17:28 ec2.tgz >> >> >>> >> > am...@amila:~$ tar -xvf ec2-bak.tgz >> >> >>> >> > >> >> >>> >> > gzip: stdin: invalid compressed data--format violated >> >> >>> >> > tar: Child returned status 1 >> >> >>> >> > tar: Error exit delayed from previous errors >> >> >>> >> > >> >> >>> >> > so file has not transfered correctly. >> >> >>> >> > >> >> >>> >> > Now if I switch off the MTOM by commenting that line >> >> >>> >> > >> >> >>> >> > am...@amila:~$ ls -all ec2-bak.tgz ec2.tgz >> >> >>> >> > -rw-r--r-- 1 amila amila 2864 2009-09-01 17:53 ec2-bak.tgz >> >> >>> >> > -rw-r--r-- 1 amila amila 2864 2009-09-01 17:28 ec2.tgz >> >> >>> >> > am...@amila:~$ tar -xvf ec2-bak.tgz >> >> >>> >> > .ec2/ >> >> >>> >> > .ec2/accno >> >> >>> >> > .ec2/cert-76TWWMUYTIAS5B7JK73C2FNCQ5R52CBO.pem >> >> >>> >> > .ec2/debian_public_debian_etch_15Sep07-keypair >> >> >>> >> > .ec2/pk-76TWWMUYTIAS5B7JK73C2FNCQ5R52CBO.pem >> >> >>> >> > >> >> >>> >> > it works fine. >> >> >>> >> > >> >> >>> >> > thanks, >> >> >>> >> > Amila. >> >> >>> >> > >> >> >>> >> > >> >> >>> >> > >> >> >>> >> > -- >> >> >>> >> > Amila Suriarachchi >> >> >>> >> > WSO2 Inc. >> >> >>> >> > blog: http://amilachinthaka.blogspot.com/ >> >> >>> >> > >> >> >>> >> >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > -- >> >> >>> > Amila Suriarachchi >> >> >>> > WSO2 Inc. >> >> >>> > blog: http://amilachinthaka.blogspot.com/ >> >> >>> > >> >> >>> >> >> >> >> >> >> >> >> > >> >> >> > >> >
