## org.apache.axis
Class Message

    java.lang.Object
      |
      +--javax.xml.soap.SOAPMessage
            |
            +--org.apache.axis.Message

All Implemented Interfaces:
  java.io.Serializable

public class Message
extends SOAPMessage
implements java.io.Serializable

A complete SOAP (and/or XML-RPC, eventually) message. Includes both the root part (as a SOAPPart), and zero or more MIME attachments (as AttachmentParts).

Eventually should be refactored to generalize SOAPPart for multiple protocols (XML-RPC?).

Author:
  Rob Jellinghaus (robj@unrealities.com), Doug Davis (dug@us.ibm.com), Glen Daniels (gdaniels@allaire.com), Rick Rineholt
See Also:
  Serialized Form

Field Summary
`static java.lang.String` `DEFAULT_ATTACHMNET_IMPL` Default Attachments Implementation class
`protected static org.apache.commons.logging.Log` `log`
`static java.lang.String` `MIME_APPLICATION_DIME`
`static java.lang.String` `MIME_MULTIPART_RELATED`
`static java.lang.String` `MIME_UNKNOWN`
`static java.lang.String` `REQUEST`
`static java.lang.String` `RESPONSE`

Constructor Summary
`Message(java.lang.Object initialContents)` Construct a Message.
`Message(java.lang.Object initialContents, boolean bodyInStream)` Construct a Message, using the provided initialContents as the contents of the Message's SOAPPart.
`Message(java.lang.Object initialContents, boolean bodyInStream, MimeHeaders headers)` Construct a Message, using the provided initialContents as the contents of the Message's SOAPPart.
`Message(java.lang.Object initialContents, boolean bodyInStream, java.lang.String contentType, java.lang.String contentLocation)` Construct a Message, using the provided initialContents as the contents of the Message's SOAPPart.
`Message(java.lang.Object initialContents, MimeHeaders headers)` Construct a Message, using the provided initialContents as the contents of the Message's SOAPPart.

Method Summary
`void` `addAttachmentPart(AttachmentPart attachmentpart)` Adds the given `AttachmentPart` object to this `SOAPMessage` object.
`int` `countAttachments()` Gets a count of the number of attachments in this message.
`AttachmentPart` `createAttachmentPart()` Creates a new empty `AttachmentPart` object.
`static java.lang.String` `getAttachmentImplClassName()` Returns name of the class prividing Attachment Implementation
`java.util.Iterator` `getAttachments()` Retrieves all the `AttachmentPart` objects that are part of this `SOAPMessage` object.
`java.util.Iterator` `getAttachments(MimeHeaders headers)` Retrieves all the `AttachmentPart` objects that have header entries that match the specified headers.
`Attachments` `getAttachmentsImpl()` Get the Attachments of this Message.
`java.lang.String` `getContentDescription()` Retrieves a description of this `SOAPMessage` object's content.
`long` `getContentLength()`
`java.lang.String` `getContentType(SOAPConstants sc)`
`MessageContext` `getMessageContext()`
`java.lang.String` `getMessageType()`
`MimeHeaders` `getMimeHeaders()` Returns all the transport-specific MIME headers for this `SOAPMessage` object in a transport-independent fashion.
`SOAPEnvelope` `getSOAPEnvelope()` Get this message's SOAPPart as a SOAPEnvelope
`SOAPPart` `getSOAPPart()` Get this message's SOAPPart.
`byte[]` `getSOAPPartAsBytes()`
`java.lang.String` `getSOAPPartAsString()`
`void` `removeAllAttachments()` Removes all `AttachmentPart` objects that have been added to this `SOAPMessage` object.
`void` `saveChanges()` Updates this `SOAPMessage` object with all the changes that have been made to it.
`boolean` `saveRequired()` Indicates whether this `SOAPMessage` object has had the method `saveChanges` called on it.
`void` `setContentDescription(java.lang.String description)` Sets the description of this `SOAPMessage` object's content with the given description.
`void` `setMessageContext(MessageContext msgContext)`
`void` `setMessageType(java.lang.String messageType)`
`void` `writeTo(java.io.OutputStream os)` Writes this `SOAPMessage` object to the given output stream.

Methods inherited from class javax.xml.soap.SOAPMessage
`createAttachmentPart, createAttachmentPart`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### log

    protected static org.apache.commons.logging.Log log

### REQUEST

    public static final java.lang.String REQUEST

See Also:
  Constant Field Values

### RESPONSE

    public static final java.lang.String RESPONSE

See Also:
  Constant Field Values

### MIME_MULTIPART_RELATED

    public static final java.lang.String MIME_MULTIPART_RELATED

See Also:
  Constant Field Values

### MIME_APPLICATION_DIME

    public static final java.lang.String MIME_APPLICATION_DIME

See Also:
  Constant Field Values

### DEFAULT_ATTACHMNET_IMPL

    public static final java.lang.String DEFAULT_ATTACHMNET_IMPL

  Default Attachments Implementation class

  See Also:
    Constant Field Values

### MIME_UNKNOWN

    public static final java.lang.String MIME_UNKNOWN

See Also:
  Constant Field Values

Constructor Detail

### Message

    public Message(java.lang.Object initialContents,
                   boolean bodyInStream)

  Construct a Message, using the provided initialContents as the contents of the Message's SOAPPart.

  Eventually, genericize this to return the RootPart instead, which will have some kind of EnvelopeFactory to enable support for things other than SOAP. But that all will come later, with lots of additional refactoring.

Parameters:
  `initialContents` - may be String, byte[], InputStream, SOAPEnvelope, or AxisFault.
  `bodyInStream` - is true if initialContents is an InputStream containing just the SOAP body (no SOAP-ENV).

### Message

    public Message(java.lang.Object initialContents,
                   boolean bodyInStream,
                   MimeHeaders headers)

  Construct a Message, using the provided initialContents as the contents of the Message's SOAPPart.

  Eventually, genericize this to return the RootPart instead, which will have some kind of EnvelopeFactory to enable support for things other than SOAP. But that all will come later, with lots of additional refactoring.

Parameters:
  `initialContents` - may be String, byte[], InputStream, SOAPEnvelope, or AxisFault.
  `bodyInStream` - is true if initialContents is an InputStream containing just the SOAP body (no SOAP-ENV).
  `headers` - Mime Headers.

### Message

    public Message(java.lang.Object initialContents,
                   MimeHeaders headers)

  Construct a Message, using the provided initialContents as the contents of the Message's SOAPPart.

  Eventually, genericize this to return the RootPart instead, which will have some kind of EnvelopeFactory to enable support for things other than SOAP. But that all will come later, with lots of additional refactoring.

Parameters:
  `initialContents` - may be String, byte[], InputStream, SOAPEnvelope, or AxisFault.
  `headers` - Mime Headers.

### Message

    public Message(java.lang.Object initialContents,
                   boolean bodyInStream,
                   java.lang.String contentType,
                   java.lang.String contentLocation)

  Construct a Message, using the provided initialContents as the contents of the Message's SOAPPart.

  Eventually, genericize this to return the RootPart instead, which will have some kind of EnvelopeFactory to enable support for things other than SOAP. But that all will come later, with lots of additional refactoring.

Parameters:
  `initialContents` - may be String, byte[], InputStream, SOAPEnvelope, or AxisFault.
  `bodyInStream` - is true if initialContents is an InputStream containing just the SOAP body (no SOAP-ENV).
  `contentType` - this if the contentType has been already determined. (as in the case of servlets);

### Message

    public Message(java.lang.Object initialContents)

  Construct a Message. An overload of Message(Object, boolean), defaulting bodyInStream to false.

Method Detail

### getAttachmentImplClassName

    public static java.lang.String getAttachmentImplClassName()

  Returns name of the class prividing Attachment Implementation

  Returns:
    class Name

### getMessageType

    public java.lang.String getMessageType()

### setMessageType

    public void setMessageType(java.lang.String messageType)

### getMessageContext

    public MessageContext getMessageContext()

### setMessageContext

    public void setMessageContext(MessageContext msgContext)

### getSOAPPart

    public SOAPPart getSOAPPart()

  Get this message's SOAPPart.

  Eventually, this should be generalized beyond just SOAP, but it's hard to know how to do that without necessitating a lot of casts in client code. Refactoring keeps getting easier anyhow.

  Specified by:
    `getSOAPPart` in class `SOAPMessage`
  Returns:
    the `SOAPPart` object for this `SOAPMessage` object

### getSOAPPartAsString

    public java.lang.String getSOAPPartAsString()
                                         throws AxisFault

    `AxisFault`

### getSOAPPartAsBytes

    public byte[] getSOAPPartAsBytes()
                              throws AxisFault

    `AxisFault`

### getSOAPEnvelope

    public SOAPEnvelope getSOAPEnvelope()
                                 throws AxisFault

  Get this message's SOAPPart as a SOAPEnvelope

    `AxisFault`

### getAttachmentsImpl

    public Attachments getAttachmentsImpl()

  Get the Attachments of this Message. If this returns null, then NO ATTACHMENT SUPPORT EXISTS in this configuration of Axis, and no attachment operations may be performed.

### getContentType

    public java.lang.String getContentType(SOAPConstants sc)
                                    throws AxisFault

    `AxisFault`

### getContentLength

    public long getContentLength()
                          throws AxisFault

    `AxisFault`

### writeTo

    public void writeTo(java.io.OutputStream os)
                 throws SOAPException,
                        java.io.IOException

  Writes this `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.

  Specified by:
    `writeTo` in class `SOAPMessage`
  Parameters:
    `os` - the `OutputStream` object to which this `SOAPMessage` object will be written
  Throws:
    `SOAPException` - if there was a problem in externalizing this SOAP message
    `java.io.IOException` - if an I/O error occurs

### getContentDescription

    public java.lang.String getContentDescription()

  Retrieves a description of this `SOAPMessage` object's content.

  Specified by:
    `getContentDescription` in class `SOAPMessage`
  Returns:
    a `String` describing the content of this message or `null` if no description has been set
  See Also:
    `setContentDescription(java.lang.String)`

### setContentDescription

    public void setContentDescription(java.lang.String description)

  Sets the description of this `SOAPMessage` object's content with the given description.

  Specified by:
    `setContentDescription` in class `SOAPMessage`
  Parameters:
    `description` - a `String` describing the content of this message
  See Also:
    `getContentDescription()`

### saveChanges

    public void saveChanges()
                     throws SOAPException

  Updates this `SOAPMessage` object with all the changes that have been made to it. This method is called automatically when a message is sent or written to by the methods `ProviderConnection.send`, `SOAPConnection.call`, or `SOAPMessage.writeTo`. 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.

  Specified by:
    `saveChanges` in class `SOAPMessage`
  Throws:
    `SOAPException` - if there was a problem saving changes to this message.

### saveRequired

    public boolean saveRequired()

  Indicates whether this `SOAPMessage` object has had the method `saveChanges` called on it.

  Specified by:
    `saveRequired` in class `SOAPMessage`
  Returns:
    `true` if `saveChanges` has been called on this message at least once; `false` otherwise.

### getMimeHeaders

    public MimeHeaders getMimeHeaders()

  Returns all the transport-specific MIME headers for this `SOAPMessage` object in a transport-independent fashion.

  Specified by:
    `getMimeHeaders` in class `SOAPMessage`
  Returns:
    a `MimeHeaders` object containing the `MimeHeader` objects

### removeAllAttachments

    public void removeAllAttachments()

  Removes all `AttachmentPart` objects that have been added to this `SOAPMessage` object.

  This method does not touch the SOAP part.

  Specified by:
    `removeAllAttachments` in class `SOAPMessage`

### countAttachments

    public int countAttachments()

  Gets a count of the number of attachments in this message. This count does not include the SOAP part.

  Specified by:
    `countAttachments` in class `SOAPMessage`
  Returns:
    the number of `AttachmentPart` objects that are part of this `SOAPMessage` object

### getAttachments

    public java.util.Iterator getAttachments()

  Retrieves all the `AttachmentPart` objects that are part of this `SOAPMessage` object.

  Specified by:
    `getAttachments` in class `SOAPMessage`
  Returns:
    an iterator over all the attachments in this message

### getAttachments

    public java.util.Iterator getAttachments(MimeHeaders headers)

  Retrieves all the `AttachmentPart` objects that have header entries that match the specified headers. Note that a returned attachment could have headers in addition to those specified.

  Specified by:
    `getAttachments` in class `SOAPMessage`
  Parameters:
    `headers` - a `MimeHeaders` object containing the MIME headers for which to search
  Returns:
    an iterator over all attachments that have a header that matches one of the given headers

### addAttachmentPart

    public void addAttachmentPart(AttachmentPart attachmentpart)

  Adds the given `AttachmentPart` object to this `SOAPMessage` object. An `AttachmentPart` object must be created before it can be added to a message.

  Specified by:
    `addAttachmentPart` in class `SOAPMessage`
  Parameters:
    `attachmentpart` - an `AttachmentPart` object that is to become part of this `SOAPMessage` object
  Throws:
    `java.lang.IllegalArgumentException`

### createAttachmentPart

    public AttachmentPart createAttachmentPart()

  Creates a new empty `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.

  Specified by:
    `createAttachmentPart` in class `SOAPMessage`
  Returns:
    a new `AttachmentPart` object that can be populated and added to this `SOAPMessage` object

Copyright © 2003 Apache Web Services Project. All Rights Reserved.