Hi samisa,  
  
  
> Going through the doc, it sounds to me that attachments would be  
> supported iff we deploy with Apache 2. Is this correct? If this is   
> the case, we may have to spell out that to the users.  
  
yes , currently  
>   
> BTW, many thanks for documenting this. Given that I am a very poor  
> reader I would have benefited much if you were to have couple of  
> diagrams ;-)  
  
Diagram is just attached   
  
Regards,  
Rangika & Nithya  
  
  
On Tue, 25 Jan 2005 08:45:07 +0000, Samisa Abeysinghe wrote  
> Going through the doc, it sounds to me that attachments would be  
> supported iff we deploy with Apache 2. Is this correct? If this is   
> the case, we may have to spell out that to the users.  
>   
> BTW, many thanks for documenting this. Given that I am a very poor  
> reader I would have benefited much if you were to have couple of  
> diagrams ;-)  
>   
> Thanks,  
> Samisa...  
>   
> On Tue, 25 Jan 2005 14:17:50 +0600, Rangika Mendis  
> <[EMAIL PROTECTED]> wrote:  
> >    
> >    
> >    
> > ws-attachments - Server Side  
> > ==================   
> >     
> > Purpose -   
> > To handle Attachments at server side.  
> > A sample has been currently written to echo attachments  to the client.   
> >     
> > The overall architecture is as follows:   
> >     
> > When Axis C++ server side receives a SOAP message with attachment(s)  it  
has  
> > to extract and store it. This is done inside the   
> >     
> > Apache module. It extracts the attachments and stores  inside a map. Then 
> > at  
> > any time if a webservice requests for a particular   
> >     
> > attachment, the transport (in this case the Apache2 module) will be able to 
> >  
> > provide it by taking it from its map. Also if a webservice   
> >     
> > needs to send an attachment back, it needs  support to add them to the  
> > Serializer. This functionality is also provided.   
> >     
> > The details given below explain the functionalities that are needed to deal 
> >  
> > with attachments (Currently we have focused on echoing   
> >     
> > attachments to the client.)   
> >     
> > 1. Apache2Transport -   
> > The following methods will be called by getBytes() once it receives the  
> > incoming message with base64 encoded attachments.   
> >     
> > extract_Attachment(pBuffer) -   
> > Extracts the attachments from the pBuffer which has the incoming  
> > message.This will extract the attachments one by one and will   
> >     
> > store them in a map.The mime headers will also be extracted one by one &  
> > will be stored in a vector.  
> >    
> > extract_SOAPMimeHeaders(pBuffer) -   
> > Extracts the SOAPMimeHeaders from the pBuffer and will store them in a char 
> >  
> > pointer.This method is required to send the   
> > response to the client.   
> >     
> > extract_Soap(pBuffer) -   
> > Extracts the soap Message from the pBuffer.The soap part is extracted  
> > because the deserializer fails when it receives data in   
> >     
> > MIME format. It can only handle data in XML format.   
> >     
> > The above 3 methods are implemented in the AttachmentHelper class.   
> >     
> > 2. The wrapper of the webservice calls the:-  
> > getElementAsString() in the deserializer to get the ID of the required web  
> > service. Then it will get the Attachment through the   
> >     
> > DeSerializer and will send the attachment/s to the webservice to process 
> > it.  
> >     
> > Currently we are expecting the attachment id to be as an element value, but 
> >  
> > we noticed in Axis Java that it is sent as an Attribute.   
> >     
> > Axis Java TCP monitor request -   
> >     
> >  <soapenv:Body>  
> >   <ns1:echo  
> > soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";  
> > xmlns:ns1="urn:EchoAttachmentsService">  
> >    <source href="cid:CB74148662CBBC03C85CAC8C456F9548";  
> > xsi:type="ns1:DataHandler"/>  
> >   </ns1:echo>  
> >  </soapenv:Body>   
> >     
> > Client TCP monitor request (which we used)-   
> >     
> >  <soapenv:Body>    
> >  <ns1:EchoAttachment  
> > soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";   
> > xmlns:ns1="urn:EchoAttachmentsService">      
> >  <id xsi:type="xsd:string">000001233</id>    
> >    </ns1:EchoAttachment>   
> > </soapenv:Body>   
> >   
> > 3. After receiving the processed attachment/s the wrapper will pass the Id  
> > and the attachment/s to the addAttachment() of  the   
> >     
> > SoapSerializer. We added the following main methods to the SoapSerializer.  
> >  
> >     
> > addAttachment(const AxisChar* achId, ISoapAttachment* pAttach) -   
> > This will add the attachment(s) to the attachment map in the Serializer.   
> >     
> > addAttachmentHeader(const AxisChar* achId, const AxisChar*  
achHeaderName,  
> > const AxisChar* achHeaderValue) -   
> > This will add the name & the value of the mime headers to the relavent  
> > Attachment.This in turn will store the mime headers in a   
> > vector.   
> >     
> > addAttachmentBody(const AxisChar* achId, xsd__base64Binary *pAttchBody) -   
> > This will set the body of the given attachment id.   
> >     
> > Comments regarding this are welcome.   
> >     
> > Regards,   
> > Nithya & Rangika   
> >   
> >    
> >   
> >    
> >   
> >  
  
  
--  
Lanka Software Foundation (http://www.opensource.lk) 
 

<<attachment: ws-attach_design.jpg>>

Reply via email to