You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Ben Malek, Hamid" <HB...@us.fujitsu.com> on 2006/07/20 22:56:59 UTC
RE: [Axis2] SwA
[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.
Re: [Axis2] SwA
Posted by Davanum Srinivas <da...@gmail.com>.
Sounds good to me (more happy because makes it is similar to Axis 1.X :)
-- dims
On 7/20/06, Thilina Gunarathne <cs...@gmail.com> 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 <HB...@us.fujitsu.com> 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: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>
--
Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers)
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org
Re: [Axis2] SwA
Posted by Thilina Gunarathne <cs...@gmail.com>.
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 <HB...@us.fujitsu.com> 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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org