Package jakarta.xml.soap
Class MessageFactory
java.lang.Object
jakarta.xml.soap.MessageFactory
A factory for creating
SOAPMessage objects.
A SAAJ client can create a MessageFactory object
using the method newInstance, as shown in the following
lines of code.
MessageFactory mf = MessageFactory.newInstance();
MessageFactory mf12 = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
All MessageFactory objects, regardless of how they are
created, will produce SOAPMessage objects that
have the following elements by default:
- A
SOAPPartobject - A
SOAPEnvelopeobject - A
SOAPBodyobject - A
SOAPHeaderobject
SOAPHeader object and the
SOAPBody object.
The content of a new SOAPMessage object depends on which of the two
MessageFactory methods 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
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract SOAPMessageCreates 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 MessageFactoryCreates 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.
-
Constructor Details
-
MessageFactory
public MessageFactory()
-
-
Method Details
-
newInstance
Creates a newMessageFactoryobject that is an instance of the default implementation (SOAP 1.1). This method uses the lookup procedure specified injakarta.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:
-
newInstance
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:
-
createMessage
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.
-