To really know that you are using MTOM you should be looking at your soap 
messages with tcpmon. If you are not using MTOM but are using base64Binary your 
soap will look something like this. Notice the <ns1:document> tag contains an 
encoded document directly embedded. 

POST /axis2/services/DocHarborServices HTTP/1.1
SOAPAction: "urn:importDocument"
User-Agent: Axis2
Host: 127.0.0.1:30004
Content-Length: <changed since I reduced this file>
Content-Type: text/xml; charset=UTF-8

<?xml version='1.0' encoding='UTF-8'?>
   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
      <soapenv:Header />
      <soapenv:Body>
         <ns1:importDocument xmlns:ns1="urn:webservices.docharbor.com">
            <ns1:users>
               <ns1:username>user1</ns1:username>
               <ns1:groupName>foldergroup</ns1:groupName>
            </ns1:users>
            
<ns1:document>e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZzd2lzc1xmY2hhcnNldDAgQXJpYWw7fX0NCntcKlxnZW5lcmF0b3IgTXNmdGVkaXQgNS40MS4xNS4xNTA3O31cdmlld2tpbmQ0XHVjMVxwYXJkXGYwXGZzMjAgSSdtIHRoZSBkZWZhdWx0IGRvY3VtZW50IGZvciBpbXBvcnRhdGlvbi5ccGFyDQp9DQoA</ns1:document>
         </ns1:importDocument>
      </soapenv:Body>
   </soapenv:Envelope>


If you are using MTOM, the same message will look like this. Notice the 
reference to the multipart mime in the <ns1:document> tag. The document is not 
encoded. The bytes appear directly (it is a MS word doc)
POST /axis2/services/DocHarborServices HTTP/1.1
SOAPAction: "urn:importDocument"
User-Agent: Axis2
Host: 127.0.0.1:30004
Content-Length: <changed since I reduced this file>
Content-Type: multipart/related; 
boundary=MIMEBoundaryurn_uuid_C6B9C73E6321C6820C1175004575367; 
type="application/xop+xml"; start="<0.urn:uuid:[EMAIL PROTECTED]>"; 
start-info="text/xml"; 
charset=UTF-8--MIMEBoundaryurn_uuid_C6B9C73E6321C6820C1175004575367content-type:
 application/xop+xml; charset=UTF-8; type="text/xml";content-transfer-encoding: 
binarycontent-id: 
   <0.urn:uuid:[EMAIL PROTECTED]>
      <?xml version='1.0' encoding='UTF-8'?>
         <soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
            <soapenv:Header />
            <soapenv:Body>
               <ns1:importDocument xmlns:ns1="urn:webservices.docharbor.com">
                  <ns1:users>
                     <ns1:username>user1</ns1:username>
                     <ns1:groupName>foldergroup</ns1:groupName>
                  </ns1:users>
                  <ns1:document>
                     <xop:Include href="cid:1.urn:uuid:[EMAIL PROTECTED]" 
xmlns:xop="http://www.w3.org/2004/08/xop/include"; />
                  </ns1:document>
               </ns1:importDocument>
            </soapenv:Body>
         
</soapenv:Envelope>--MIMEBoundaryurn_uuid_C6B9C73E6321C6820C1175004575367content-type:
 application/octet-streamcontent-transfer-encoding: binarycontent-id: 
         <1.urn:uuid:[EMAIL 
PROTECTED]>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0
 Arial;}}{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\f0\fs20 I'm 
the default document for importation.\par}
 

-----Original Message-----
From: Thilina Gunarathne [mailto:[EMAIL PROTECTED] 
Sent: Friday, April 20, 2007 4:38 AM
To: axis-user@ws.apache.org
Subject: Re: using MTOM in a AXIOM-based WS

> Yes I read the guide but I need a more complete example.
You can have a look at the MTOM Sample in the Axis2 dist.. It contains a 
complete WSDL first sample...

> In my MTOM implementation I did not used a base64 encoded string.. I 
> simply
> did:
You do not necessarily need to use base64 strings...  MTOM optimised binary 
data is  represented by the base64Bianry data type...

>From the MTOM spec,
"At the conceptual level, this binary data can be thought of as being 
base64-encoded in the XML Document. As this conceptual form might be needed 
during some processing of the XML Document (e.g., for signing the XML 
document), it is necessary to have a one-to-one correspondence between XML 
Infosets and XOP Packages. Therefore, the conceptual representation of such 
binary data is as if it were base64-encoded, using the canonical lexical form 
of XML Schema base64Binary datatype (see [XML Schema Part 2: Datatypes Second 
Edition] 3.2.16 base64Binary). In the reverse direction, XOP is capable of 
optimizing only base64-encoded Infoset data that is in the canonical lexical 
form."

>  And it does work wheter I transfer a txt, a pdf, a jpg......
>
> The WSDL currently defines:
>
>         <xs:element name="getPriceFileResponse">
>             <xs:complexType>
>                 <xs:sequence>
>                     <xs:element name="priceFile" nillable="true"
> type="xs:string" />
this needs to be xs:base64Binary...

Thanks,
Thilina
>
> Is this bad?
>
> Thanks
>
>
>
> On 4/20/07, Thilina Gunarathne <[EMAIL PROTECTED]> wrote:
> >
> > > I have question about the WSDL for the MTOM-based service... For 
> > > the operation which has a parameter which is a binary file, which 
> > > type should I declare for the parameter? string?
> > base64Binary..
> > You may refer to here[1] as a guide...
> >
> > Thanks,
> > Thilina
> >
> > [1] http://ws.apache.org/axis2/1_1_1/mtom-guide.html#25
> > >
> > > In my enhanced StockQuoteservice.wsdl (which has a getPriceFile 
> > > method which receives a file name as input and returns a priceFile 
> > > as outpput), I wrote:
> > >
> > > <wsdl:types>
> > >         <xs:schema xmlns:xs="
> http://www.w3.org/2001/XMLSchema";
> > > attributeFormDefault="qualified"
> elementFormDefault="qualified"
> > > targetNamespace=" http://quickstart.samples/xsd";>
> > >                 <xs:element name="getPriceFile">
> > >                         <xs:complexType>
> > >                                 <xs:sequence>
> > >                                         <xs:element
> name="priceFileName" nillable="true" type="xs:string" />
> > >                                 </xs:sequence>
> > >                         </xs:complexType>
> > >                 </xs:element>
> > >                 <xs:element name="getPriceFileResponse">
> > >                         <xs:complexType>
> > >                                 <xs:sequence>
> > >                                         <xs:element
> name="priceFile" nillable="true" type="xs:string" />
> > >                                 </xs:sequence>
> > >                         </xs:complexType>
> > >                 </xs:element>
> > >
> > >
> > > Is this correct?
> > >
> > > Thank you very much
> > >
> > >
> > > >
> > > >
> [1]http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/s
> amples/deprecated/mtomsample/
> > > > [2]ws.apache.org/commons/tcpmon
> > > > --
> > > > Thilina Gunarathne  -  http://www.wso2.com -
> http://thilinag.blogspot.com
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > >
> > > --
> > > Michele Amoretti, Ph.D.
> > > Distributed Systems Group
> > > Dipartimento di Ingegneria dell'Informazione Università degli 
> > > Studi di Parma http://www.ce.unipr.it/amoretti
> > >
> > >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> >
> > --
> > Thilina Gunarathne  -  http://www.wso2.com - 
> > http://thilinag.blogspot.com
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
>
> --
> Michele Amoretti, Ph.D.
> Distributed Systems Group
> Dipartimento di Ingegneria dell'Informazione Università degli Studi di 
> Parma  http://www.ce.unipr.it/amoretti


-- 
Thilina Gunarathne  -  http://www.wso2.com - http://thilinag.blogspot.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to