public abstract class SOAPMessage
extends java.lang.Object
 A SOAPMessage object consists of a SOAP part and optionally
 one or more attachment parts. The SOAP part for a SOAPMessage
 object is a SOAPPart object, which contains information used
 for message routing and identification, and which can contain
 application-specific content. All data in the SOAP Part of a message must be
 in XML format.
 
 A new SOAPMessage object contains the following by default:
 
SOAPPart object
   SOAPEnvelope object
   SOAPBody object
   SOAPHeader object
 SOAPMessage.getSOAPPart().
 The SOAPEnvelope object is retrieved from the SOAPPart
 object, and the SOAPEnvelope object is used to retrieve the
 SOAPBody and SOAPHeader objects.
 
     SOAPPart sp = message.getSOAPPart();
     SOAPEnvelope se = sp.getEnvelope();
     SOAPBody sb = se.getBody();
     SOAPHeader sh = se.getHeader();
 
 In addition to the mandatory SOAPPart object, a SOAPMessage
 object may contain zero or more AttachmentPart objects, each
 of which contains application-specific data. The SOAPMessage
 interface provides methods for creating AttachmentPart
 objects and also for adding them to a SOAPMessage object. A
 party that has received a SOAPMessage object can examine its
 contents by retrieving individual attachment parts.
 
 Unlike the rest of a SOAP message, an attachment is not required to be in
 XML format and can therefore be anything from simple text to an image file.
 Consequently, any message content that is not in XML format must be in an
 AttachmentPart object.
 
 A MessageFactory object may create SOAPMessage
 objects with behavior that is specialized to a particular implementation or
 application of SAAJ. For instance, a MessageFactory object
 may produce SOAPMessage objects that conform to a particular
 Profile such as ebXML. In this case a MessageFactory object
 might produce SOAPMessage objects that are initialized with
 ebXML headers.
 
 In order to ensure backward source compatibility, methods that are added to
 this class after version 1.1 of the SAAJ specification are all concrete
 instead of abstract and they all have default implementations. Unless
 otherwise noted in the JavaDocs for those methods the default
 implementations simply throw an UnsupportedOperationException
 and the SAAJ implementation code must override them with methods that
 provide the specified behavior. Legacy client code does not have this
 restriction, however, so long as there is no claim made that it conforms to
 some later version of the specification than it was originally written for.
 A legacy class that extends the SOAPMessage class can be compiled and/or run
 against succeeding versions of the SAAJ API without modification. If such a
 class was correctly implemented then it will continue to behave correctly
 relative to the version of the specification against which it was written.
MessageFactory, 
AttachmentPart| Modifier and Type | Field and Description | 
|---|---|
| static java.lang.String | CHARACTER_SET_ENCODINGSpecifies the character type encoding for the SOAP Message. | 
| static java.lang.String | WRITE_XML_DECLARATIONSpecifies whether the SOAP Message will contain an XML declaration when
 it is sent. | 
| Constructor and Description | 
|---|
| SOAPMessage() | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract void | addAttachmentPart(AttachmentPart attachmentPart)Adds the given  AttachmentPartobject to thisSOAPMessageobject. | 
| abstract int | countAttachments()Gets a count of the number of attachments in this message. | 
| abstract AttachmentPart | createAttachmentPart()Creates a new empty  AttachmentPartobject. | 
| AttachmentPart | createAttachmentPart(DataHandler dataHandler)Creates an  AttachmentPartobject and populates it using
 the givenDataHandlerobject. | 
| AttachmentPart | createAttachmentPart(java.lang.Object content,
                    java.lang.String contentType)Creates an  AttachmentPartobject and populates it with
 the specified data of the specified content type. | 
| abstract AttachmentPart | getAttachment(SOAPElement element)Returns an  AttachmentPartobject that is associated with an
 attachment that is referenced by thisSOAPElementornullif no such attachment exists. | 
| abstract java.util.Iterator<AttachmentPart> | getAttachments()Retrieves all the  AttachmentPartobjects that are part of
 thisSOAPMessageobject. | 
| abstract java.util.Iterator<AttachmentPart> | getAttachments(MimeHeaders headers)Retrieves all the  AttachmentPartobjects that have header
 entries that match the specified headers. | 
| abstract java.lang.String | getContentDescription()Retrieves a description of this  SOAPMessageobject's
 content. | 
| abstract MimeHeaders | getMimeHeaders()Returns all the transport-specific MIME headers for this  SOAPMessageobject in a transport-independent fashion. | 
| java.lang.Object | getProperty(java.lang.String property)Retrieves value of the specified property. | 
| SOAPBody | getSOAPBody()Gets the SOAP Body contained in this  SOAPMessageobject. | 
| SOAPHeader | getSOAPHeader()Gets the SOAP Header contained in this  SOAPMessageobject. | 
| abstract SOAPPart | getSOAPPart()Gets the SOAP part of this  SOAPMessageobject. | 
| abstract void | removeAllAttachments()Removes all  AttachmentPartobjects that have been added
 to thisSOAPMessageobject. | 
| abstract void | removeAttachments(MimeHeaders headers)Removes all the  AttachmentPartobjects that have header
 entries that match the specified headers. | 
| abstract void | saveChanges()Updates this  SOAPMessageobject with all the changes that
 have been made to it. | 
| abstract boolean | saveRequired()Indicates whether this  SOAPMessageobject needs to have
 the methodsaveChangescalled on it. | 
| abstract void | setContentDescription(java.lang.String description)Sets the description of this  SOAPMessageobject's
 content with the given description. | 
| void | setProperty(java.lang.String property,
           java.lang.Object value)Associates the specified value with the specified property. | 
| abstract void | writeTo(java.io.OutputStream out)Writes this  SOAPMessageobject to the given output
 stream. | 
public static final java.lang.String CHARACTER_SET_ENCODING
SOAPMessage.setProperty, 
Constant Field Valuespublic static final java.lang.String WRITE_XML_DECLARATION
SOAPMessage.setProperty, 
Constant Field Valuespublic abstract void setContentDescription(java.lang.String description)
SOAPMessage object's
 content with the given description.description - a String describing the content of this
         messagegetContentDescription()public abstract java.lang.String getContentDescription()
SOAPMessage object's
 content.String describing the content of this
         message or null if no description has been setsetContentDescription(java.lang.String)public abstract SOAPPart getSOAPPart()
SOAPMessage object.
 
 SOAPMessage object contains one or more attachments, the
 SOAP Part must be the first MIME body part in the message.
SOAPPart object for this SOAPMessage
 objectpublic SOAPBody getSOAPBody() throws SOAPException
SOAPMessage object.SOAPBody object contained by this SOAPMessage
 objectSOAPException - if the SOAP Body does not exist or cannot be retrievedpublic SOAPHeader getSOAPHeader() throws SOAPException
SOAPMessage object.SOAPHeader object contained
         by this SOAPMessage objectSOAPException - if the SOAP Header does not exist or cannot be retrievedpublic abstract void removeAllAttachments()
AttachmentPart objects that have been added
 to this SOAPMessage object.
 This method does not touch the SOAP part.
public abstract int countAttachments()
AttachmentPart objects that are
 part of this SOAPMessage objectpublic abstract java.util.Iterator<AttachmentPart> getAttachments()
AttachmentPart objects that are part of
 this SOAPMessage object.public abstract java.util.Iterator<AttachmentPart> getAttachments(MimeHeaders headers)
AttachmentPart objects that have header
 entries that match the specified headers. Note that a returned
 attachment could have headers in addition to those specified.headers - a MimeHeaders object containing the MIME
                headers for which to searchpublic abstract void removeAttachments(MimeHeaders headers)
AttachmentPart objects that have header
 entries that match the specified headers. Note that the removed
 attachment could have headers in addition to those specified.headers - a MimeHeaders object containing the MIME
           headers for which to searchpublic abstract AttachmentPart getAttachment(SOAPElement element) throws SOAPException
AttachmentPart object that is associated with an
 attachment that is referenced by this SOAPElement or
 null if no such attachment exists. References can be made
 via an href attribute as described in
 SOAP Messages with Attachments,
 or via a single Text child node containing a URI as
 described in the WS-I Attachments Profile 1.0 for elements of schema
 type ref:swaRef.
 These two mechanisms must be supported.
 The support for references via href attribute also implies that
 this method should also be supported on an element that is an
 xop:Include element (
 XOP).
 other reference mechanisms may be supported by individual
 implementations of this standard. Contact your vendor for details.element - The SOAPElement containing the reference to an AttachmentAttachmentPart or null if no such
          AttachmentPart exists or no reference can be
          found in this SOAPElement.SOAPException - if there is an error in the attempt to access the
          attachmentpublic abstract void addAttachmentPart(AttachmentPart attachmentPart)
AttachmentPart object to this SOAPMessage
 object. An AttachmentPart object must be created before
 it can be added to a message.attachmentPart - an attachmentPart object that is to become part
           of this SOAPMessage objectjava.lang.IllegalArgumentException - if there was a problem with the specified attachmentPart
               objectpublic abstract AttachmentPart createAttachmentPart()
AttachmentPart object. Note that the
 method addAttachmentPart must be called with this new
 AttachmentPart object as the parameter in order for it to
 become an attachment to this SOAPMessage object.AttachmentPart object that can be populated
         and added to this SOAPMessage objectpublic AttachmentPart createAttachmentPart(DataHandler dataHandler)
AttachmentPart object and populates it using
 the given DataHandler object.dataHandler - the javax.activation.DataHandler object that
           will generate the content for this SOAPMessage
           objectAttachmentPart object that contains data
         generated by the given DataHandler objectjava.lang.IllegalArgumentException - if there was a problem with the specified DataHandler
               objectDataHandler, 
DataContentHandlerpublic abstract MimeHeaders getMimeHeaders()
SOAPMessage
 object in a transport-independent fashion.MimeHeaders object containing the MimeHeader
         objectspublic AttachmentPart createAttachmentPart(java.lang.Object content, java.lang.String contentType)
AttachmentPart object and populates it with
 the specified data of the specified content type. The type of the
 Object should correspond to the value given for the
 Content-Type.content - an Object containing the content for the
           AttachmentPart object to be createdcontentType - a String object giving the type of content;
           examples are "text/xml", "text/plain", and "image/jpeg"AttachmentPart object that contains the
         given datajava.lang.IllegalArgumentException - may be thrown if the contentType does not match the type
               of the content object, or if there was no
               DataContentHandler object for the given
               content objectDataHandler, 
DataContentHandlerpublic abstract void saveChanges()
                          throws SOAPException
SOAPMessage object with all the changes that
 have been made to it. This method is called automatically when
 writeTo(OutputStream) is  called. However, if
 changes are made to a message that was received or to one that has
 already been sent, the method saveChanges needs to be
 called explicitly in order to save the changes. The method saveChanges
 also generates any changes that can be read back (for example, a
 MessageId in profiles that support a message id). All MIME headers in a
 message that is created for sending purposes are guaranteed to have
 valid values only after saveChanges has been called.
 
 In addition, this method marks the point at which the data from all
 constituent AttachmentPart objects are pulled into the
 message.
SOAPException - if there was a problem saving
            changes to this message.public abstract boolean saveRequired()
SOAPMessage object needs to have
 the method saveChanges called on it.true if saveChanges needs to be
         called; false otherwise.public abstract void writeTo(java.io.OutputStream out)
                      throws SOAPException,
                             java.io.IOException
SOAPMessage object to the given output
 stream. The externalization format is as defined by the SOAP 1.1 with
 Attachments specification.
 
 If there are no attachments, just an XML stream is written out. For
 those messages that have attachments, writeTo writes a
 MIME-encoded byte stream.
 
Note that this method does not write the transport-specific MIME Headers of the Message
out - the OutputStream object to which this SOAPMessage
           object will be writtenjava.io.IOException - if an I/O error occursSOAPException - if there was a problem in externalizing this SOAP messagepublic void setProperty(java.lang.String property,
                        java.lang.Object value)
                 throws SOAPException
 The valid property names include
 WRITE_XML_DECLARATION  and
 CHARACTER_SET_ENCODING. All of these standard SAAJ
 properties are prefixed by "javax.xml.soap". Vendors may also add
 implementation specific properties. These properties must be prefixed
 with package names that are unique to the vendor.
 
 Setting the property WRITE_XML_DECLARATION to "true"
 will cause an XML Declaration to be written out at the start of the SOAP
 message. The default value of "false" suppresses this declaration.
 
 The property CHARACTER_SET_ENCODING defaults to the value
 "utf-8" which causes the SOAP message to be encoded using
 UTF-8. Setting CHARACTER_SET_ENCODING to "utf-16"
 causes the SOAP message to be encoded using UTF-16.
 
Some implementations may allow encodings in addition to UTF-8 and UTF-16. Refer to your vendor's documentation for details.
property - the property with which the specified value is to be
           associated.value - the value to be associated with the specified propertySOAPException - if the property name is not recognized.public java.lang.Object getProperty(java.lang.String property)
                             throws SOAPException
property - the name of the property to retrievenull
         if no such property exists.SOAPException - if the property name is not recognized.