Package javax.xml.soap
Class MessageFactory
- java.lang.Object
 - 
- javax.xml.soap.MessageFactory
 
 
- 
public abstract class MessageFactory extends Object
A factory for creatingSOAPMessageobjects.A SAAJ client can create a
MessageFactoryobject using the methodnewInstance, as shown in the following lines of code.MessageFactory mf = MessageFactory.newInstance(); MessageFactory mf12 = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);All
MessageFactoryobjects, regardless of how they are created, will produceSOAPMessageobjects that have the following elements by default:- A 
SOAPPartobject - A 
SOAPEnvelopeobject - A 
SOAPBodyobject - A 
SOAPHeaderobject 
SOAPHeaderobject and theSOAPBodyobject. The content of a newSOAPMessageobject depends on which of the twoMessageFactorymethods is used to create it.createMessage()
This is the method clients would normally use to create a request message.createMessage(MimeHeaders, java.io.InputStream)-- message has content from theInputStreamobject and headers from theMimeHeadersobject
This method can be used internally by a service implementation to create a message that is a response to a request.
- Since:
 - 1.6
 
 - A 
 
- 
- 
Constructor Summary
Constructors Constructor Description MessageFactory() 
- 
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract SOAPMessagecreateMessage()Creates a newSOAPMessageobject with the defaultSOAPPart,SOAPEnvelope,SOAPBody, andSOAPHeaderobjects.abstract SOAPMessagecreateMessage(MimeHeaders headers, InputStream in)Internalizes the contents of the givenInputStreamobject into a newSOAPMessageobject and returns theSOAPMessageobject.static MessageFactorynewInstance()Creates a newMessageFactoryobject that is an instance of the default implementation (SOAP 1.1).static MessageFactorynewInstance(String protocol)Creates a newMessageFactoryobject that is an instance of the specified implementation. 
 - 
 
- 
- 
Method Detail
- 
newInstance
public static MessageFactory newInstance() throws SOAPException
Creates a newMessageFactoryobject that is an instance of the default implementation (SOAP 1.1). This method uses the lookup procedure specified injavax.xml.soapto locate and load theMessageFactoryclass.- Returns:
 - a new instance of a 
MessageFactory - Throws:
 SOAPException- if there was an error in creating the default implementation of theMessageFactory.- See Also:
 SAAJMetaFactory
 
- 
newInstance
public static MessageFactory newInstance(String protocol) throws SOAPException
Creates a newMessageFactoryobject that is an instance of the specified implementation. May be a dynamic message factory, a SOAP 1.1 message factory, or a SOAP 1.2 message factory. A dynamic message factory creates messages based on the MIME headers specified as arguments to thecreateMessagemethod. This method uses the SAAJMetaFactory to locate the implementation class and create the MessageFactory instance.- Parameters:
 protocol- a string constant representing the class of the specified message factory implementation. May be eitherDYNAMIC_SOAP_PROTOCOL,DEFAULT_SOAP_PROTOCOL(which is the same as)SOAP_1_1_PROTOCOL, orSOAP_1_2_PROTOCOL.- Returns:
 - a new instance of a 
MessageFactory - Throws:
 SOAPException- if there was an error in creating the specified implementation ofMessageFactory.- Since:
 - 1.6, SAAJ 1.3
 - See Also:
 SAAJMetaFactory
 
- 
createMessage
public abstract SOAPMessage createMessage() throws SOAPException
Creates a newSOAPMessageobject with the defaultSOAPPart,SOAPEnvelope,SOAPBody, andSOAPHeaderobjects. Profile-specific message factories can choose to prepopulate theSOAPMessageobject with profile-specific headers.Content can be added to this message's
SOAPPartobject, and the message can be sent "as is" when a message containing only a SOAP part is sufficient. Otherwise, theSOAPMessageobject needs to create one or moreAttachmentPartobjects and add them to itself. Any content that is not in XML format must be in anAttachmentPartobject.- Returns:
 - a new 
SOAPMessageobject - Throws:
 SOAPException- if a SOAP error occursUnsupportedOperationException- if the protocol of thisMessageFactoryinstance isDYNAMIC_SOAP_PROTOCOL
 
- 
createMessage
public abstract SOAPMessage createMessage(MimeHeaders headers, InputStream in) throws IOException, SOAPException
Internalizes the contents of the givenInputStreamobject into a newSOAPMessageobject and returns theSOAPMessageobject.- Parameters:
 in- theInputStreamobject that contains the data for a messageheaders- the transport-specific headers passed to the message in a transport-independent fashion for creation of the message- Returns:
 - a new 
SOAPMessageobject containing the data from the givenInputStreamobject - Throws:
 IOException- if there is a problem in reading data from the input streamSOAPException- may be thrown if the message is invalidIllegalArgumentException- if theMessageFactoryrequires one or more MIME headers to be present in theheadersparameter and they are missing.MessageFactoryimplementations forSOAP_1_1_PROTOCOLorSOAP_1_2_PROTOCOLmust not throwIllegalArgumentExceptionfor this reason.
 
 - 
 
 -