
A single attachment to a
SOAPMessage object. A
SOAPMessage
object may contain zero, one, or many
AttachmentPart objects.
Each
AttachmentPart object consists of two parts,
application-specific content and associated MIME headers. The
MIME headers consists of name/value pairs that can be used to
identify and describe the content.
An AttachmentPart object must conform to certain standards.
- It must conform to
MIME [RFC2045] standards
- It MUST contain content
- The header portion MUST include the following header:
There are no restrictions on the content portion of an
AttachmentPart object. The content may be anything from a
simple plain text object to a complex XML document or image file.
An AttachmentPart object is created with the method
SOAPMessage.createAttachmentPart. After setting its MIME headers,
the AttachmentPart object is added to the message
that created it with the method SOAPMessage.addAttachmentPart.
The following code fragment, in which m is a
SOAPMessage object and contentStringl is a
String, creates an instance of AttachmentPart,
sets the AttachmentPart object with some content and
header information, and adds the AttachmentPart object to
the SOAPMessage object.
AttachmentPart ap1 = m.createAttachmentPart();
ap1.setContent(contentString1, "text/plain");
m.addAttachmentPart(ap1);
The following code fragment creates and adds a second
AttachmentPart instance to the same message. jpegData
is a binary byte buffer representing the jpeg file.
AttachmentPart ap2 = m.createAttachmentPart();
byte[] jpegData = ...;
ap2.setContent(new ByteArrayInputStream(jpegData), "image/jpeg");
m.addAttachmentPart(ap2);
The getContent method retrieves the contents and header from
an AttachmentPart object. Depending on the
DataContentHandler objects present, the returned
Object can either be a typed Java object corresponding
to the MIME type or an InputStream object that contains the
content as bytes.
String content1 = ap1.getContent();
java.io.InputStream content2 = ap2.getContent();
The method
clearContent removes all the content from an
AttachmentPart object but does not affect its header information.
ap1.clearContent();