ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » SwA vs MTOM implementation

Post new topic  Reply to topic
 SwA vs MTOM implementation « View previous topic :: View next topic » 
Author Message
vickas
PostPosted: Thu Oct 09, 2014 3:46 am    Post subject: SwA vs MTOM implementation Reply with quote

Centurion

Joined: 18 Aug 2013
Posts: 126

Hie All ;

I need some clarification on MTOM vs SwA Implementation in Broker

please correct me if am wrong ,

The basic understanding ( Talking only from implementation perspective) in sending attachments using SwA n MTOM mechanism i have is,
inorder to work with SwA WSDL should have multipartRelated

Code:
 <wsdl:input>
                         <mime:multipartRelated>
                    <mime:part>
                        <soapbind:body use="literal"
                                       parts="ClaimDetail" namespace="http://example.com/mimetypes"/>
                    </mime:part>
                    <mime:part>
                        <mime:content part="ClaimPhoto" type="image/jpeg"/>
                    </mime:part>
                </mime:multipartRelated>
            </wsdl:input>
 


and inorder to work with MTOM , the wsdl should have base64 type elements


Code:
   <element name="doc1" type="base64Binary" xmime:expectedContentTypes="image/jpeg"/>




* secondly , in MTOM , the attachments will be the part of SOAP message . here , we map the attachment directly to the base64 element which is defined in the WSDL. but in SwA , we categorize them as parts .

and what i dont understand in SwA is the following part ( Taken the following example)
Code:

MIME-Version: 1.0
Content-Type: Multipart/Related;boundary=MIME_boundary;type="application/xop+xml";
start="<mymessage.xml@example.org>";
startinfo="application/soap+xml; action=\"addGuarantorStamp\""
Content-Description: SOAP message with image
--MIME_boundary
Content-Type: application/xop+xml;charset=UTF-8; type "application/soap+xml; action=\"addGuarantorStamp\""
Content-Transfer-Encoding: 8bit
Content-ID: <mymessage.xml@example.org>
<SOAP-ENV:Body>
Content-Type: image/jpeg
Content-Transfer-Encoding: binary
Content-ID: <http://example.org/me.jpg>
POST /foo/mgk HTTP/1.1
Content-Type: multipart/related; boundary=BBB; type="text/xml"; start="mgk";charset=UTF-8
Content-Length: 527

--BBB
content-type:text/xml; charset=UTF-8
content-id: <mgk>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="http://ns2" xmlns:ns1="http://wss001.miwssoap.broker.mqst.ibm.com"><SOAP-ENV:Header><ns2:h1>hdr1</ns2:h1><ns2:h2><href>cid:XXX</href></ns2:h2></SOAP-ENV:Header><SOAP-ENV:Body><ns1:timesTen>3</ns1:timesTen></SOAP-ENV:Body></SOAP-ENV:Envelope>
--BBB
content-type:application/octet-stream
content-transfer-encoding:quoted-printable
content-id:<XXX>


I find many Content-ID here ?? If am not wrong, Content-ID acts like a unique address , why do we have many Content-ID's ??
and what do MIME_boundary define & with what values it can be populated ?? Can someone please take the pain to give me some clarity ?
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Oct 09, 2014 5:26 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Every time you see a MIME boundary, you start a new MIME part.

Each MIME part has it's own content, so each MIME part has it's own content-type and content-id.
Back to top
View user's profile Send private message
vickas
PostPosted: Thu Oct 09, 2014 9:39 am    Post subject: Reply with quote

Centurion

Joined: 18 Aug 2013
Posts: 126

Tq for ua reply MqJeff!

I dont really understand how to generate the MIME request in ESQL inorder to hit the service .

from what i read , the presence/absence of MIME tree doesnt effect the SOAP request .

This is how i tried ,

Code:

        SET OutputRoot.HTTPRequestHeader."Accept-Encoding" = 'gzip,deflate';
      SET OutputRoot.HTTPRequestHeader."Content-Type" = 'multipart/related; boundary=vickasBoundary ;type=application/xop+xml';
       SET OutputRoot.HTTPRequestHeader."Content-Encoding" = 'base64';
       SET OutputRoot.HTTPRequestHeader.SOAPAction = '' ;
   
        
      
       SET OutputRoot.Properties.CodedCharSetId = '1208';
      SET OutputRoot.Properties.Encoding= InputRoot.Properties.Encoding;
       SET OutputRoot.Properties.ContentType = 'application/xop+xml';
      
      
      
       CREATE FIELD OutputRoot.MIME TYPE Name;
        DECLARE M REFERENCE TO OutputRoot.MIME;
        CREATE FIELD M."Content-Type" TYPE NameValue VALUE 'multipart/related; type="application/xop+xml"; boundary=myBoundary';
        CREATE FIELD M."Content-ID"  TYPE NameValue VALUE 'Penguins.jpg';   
        CREATE LASTCHILD OF M TYPE Name NAME 'Parts';
        CREATE LASTCHILD OF M.Parts TYPE Name NAME 'Part';
        DECLARE P1 REFERENCE TO M.Parts.Part;
        CREATE FIELD P1."Content-Type" TYPE NameValue VALUE 'application/octet-stream; name=Penguins.jpg';
        CREATE FIELD P1."Content-Transfer-Encoding" TYPE NameValue VALUE 'base64';
        CREATE LASTCHILD OF P1 TYPE Name NAME 'SOAP';   
        CREATE LASTCHILD OF P1.SOAP TYPE Name NAME 'Body';
           DECLARE B REFERENCE TO P1.SOAP.Body ;
         CREATE LASTCHILD OF B.ns:sendImage TYPE Name NAME 'image';     
        CREATE LASTCHILD OF P1 TYPE Name NAME 'Data';
        CREATE LASTCHILD OF P1.Data DOMAIN('BLOB') PARSE(InputRoot.BLOB.BLOB); 


can u please guide me how to form the request using ESQL for SwA ??
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Oct 09, 2014 10:02 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

I've never done anything with SwA.

But it looks like you can just add in (or remove) the various attachments from the Soap Message Tree.

http://www-01.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/ac64020_.htm%23ac64020_
Back to top
View user's profile Send private message
vickas
PostPosted: Fri Oct 10, 2014 6:12 am    Post subject: Reply with quote

Centurion

Joined: 18 Aug 2013
Posts: 126

Code:

       SET OutputRoot.Properties.CodedCharSetId = '1208';
      SET OutputRoot.Properties.Encoding= InputRoot.Properties.Encoding;
       SET OutputRoot.Properties.ContentType = 'application/xop+xml';
   
        SET OutputRoot.SOAP.Body.ns:sendImage.image = BASE64ENCODE(CAST(InputRoot.BLOB.BLOB  AS BLOB CCSID 1208));
        SET OutputRoot.SOAP.Attachment.Id1.MIME_Headers."Content-Type" = 'application/xop+xml';
        SET OutputRoot.SOAP.Attachment.Id1.MIME_Headers."Content-Id" = 'Penguins.jpg'; 
        SET OutputRoot.SOAP.Attachment.Id1.BLOB = InputRoot.BLOB.BLOB;


this is how i have written the ESQL to call sWa .(below is the WSDL)

Code:
 

 <message name="imageMsg">
    <part name="image" type="xsd:hexBinary"/>
  </message>
  <operation name="sendImage">
      <input message="tns:imageMsg"/>
      <output message="tns:empty"/>
    </operation>
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="sendImage">
      <soap:operation soapAction=""/>
      <input>
        <mime:multipartRelated>
          <mime:part>
            <soap:body use="literal"/>
          </mime:part>
          <mime:part>
            <mime:content part="image" type="image/jpeg"/>
          </mime:part>
        </mime:multipartRelated>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
   <service name="XXXservice">
    <port name="XXX" binding="tns:XXXBinding">
      <soap:address
          location="http://localhost:XXXX"/>
    </port>


can someone please guide upon how to generate the request in ESQL ??
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » SwA vs MTOM implementation
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.