Sounds good to me (more happy because makes it is similar to Axis 1.X :)
-- dims On 7/20/06, Thilina Gunarathne <[EMAIL PROTECTED]> wrote:
Big +1....:) Any suggestions from others?/ > · Write a MessageReceiver that would support delivery of > javax.mail.internet.MimeMessage objects to a service. The MessageReceiver > would convert the response javax.mail.internet.MimeMessage object to a > org.apache.axiom.soap.SOAPMessage object and store it in > the MessageContext, or it would just put the SOAPEnvelope in the > MessageContext and construct an Attachment object, and then set a flag in > the MessageContext indicating that the response should be serialized in the > MimeMessage format and not in the MTOM format. > I don't think a service implementer will need to deal with MIME. They would be well off with DataHandlers. Better get rid of the MIMEmessages at the transport level. Thanks, ~Thilina On 7/21/06, Ben Malek, Hamid <[EMAIL PROTECTED]> wrote: > > > > > [Thilina]: OMElement as in ServiceClient.sendReceive(OMElement elem) > represents the XML payload which goes inside the SOAP body. IMHO SwA > attachments belong to the SOAP message level. They do not belong to the SOAP > envelope or the XML payload, since they do not have defined relationship to > the XML payload. According to what I understand MessageContext is the Axis2 > entity which contains the SOAP message level information. I believe SwA > attachments should be put in to MsgContext. I do not see any justifiable > placeholder for SwA type attachments in XML representation of the payload. > This is just how I feel:). > > > > [Hamid]: Thilina, you are right about this. I forgot that the method > ServiceClient.sendReceive(OMElement) puts the element inside the SOAP body. > > How about the following: > > · add a method getAttachments() to the interface > org.apache.axiom.soap.SOAPMessage > > · add an instance variable of type > org.apache.axiom.attachments.Attachments to the classes > org.apache.axiom.soap.impl.llom.SOAPMessageImpl and > org.apache.axiom.soap.impl.dom.SOAPMessageImpl > > · add appropriate methods to the interface > org.apache.axiom.soap.SOAPMessage for adding attachments > (things like addDataHandler(dh), addAttachment(File file, String contentID), > etc....) > > · add some flag, as suggested by Paul, not to the OMText, but to the > SOAPMessage interface to indicate whether the SOAPMessage will be a > MimeMessage when serialized over the wire or it will be in an MTOM > serialization format. If an OMText element is added to the SOAP header or > SOAP body of the SOAPMessage and the OMText object is an MTOM thing, then > the flag of the SOAPMessage interface should automatically change to > indicate the SOAPMessage object will be serialized in MTOM format. > > · Modify the serialization method of the SOAPMessageImpl classes to > take into consideration the mime flag of the SOAPMessage interface and if > the SOAPMessage is an SwA that is non-MTOM, then the serialization should > write the MimeHeaders correctly, together with the attachments. (in > Axis-1.x, the SOAPMessage when serialized over the wire, it writes the > MimeHeaders as well as the attachments). > > · Add methods to the ServiceClient class such as: public SOAPMessage > sendReceive(SOAPMessage), > sendReceiveNonBlocking(SOAPMessage, Callback), etc... > (unlike the sendReceive(OMElement) behavior, these new methods will not put > the argument in the SOAP body, but would serialize the object directly as it > is on the wire). > > · On the receiving side, if the input stream is a MimeMessage > stream, the axis servlet should construct a SOAPMessage object and put it as > a property in the MessageContext (instead of putting the Attachment object > in the MessageContext). Or keep the implementation as it is, but add a flag > to the MessageContext to indicate that the received message is a SwA that is > not an MTOM. > > · Modify the transport senders so that they first check the > MessageContext if it has a SOAPMessage object stored as a property. If > that's the case, then serialize the SOAPMessage object (it will be a > MimeMessage serialization). If the MessageContext does not have a > SOAPMessage object stored as a property, then do the normal serialization of > the SOAPEnvelope that is present in the MessageContext. > > · Write a MessageReceiver that would support delivery of > javax.mail.internet.MimeMessage objects to a service. The MessageReceiver > would convert the response javax.mail.internet.MimeMessage object to a > org.apache.axiom.soap.SOAPMessage object and store it in > the MessageContext, or it would just put the SOAPEnvelope in the > MessageContext and construct an Attachment object, and then set a flag in > the MessageContext indicating that the response should be serialized in the > MimeMessage format and not in the MTOM format. > > -- "May the SourcE be with u" http://webservices.apache.org/~thilina/ http://thilinag.blogspot.com/ http://www.bloglines.com/blog/Thilina --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
