Package jakarta.xml.soap
Class MessageFactory
- java.lang.Object
-
- jakarta.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 Modifier Constructor Description protectedMessageFactory()Default constructor.
-
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 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:
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.
-
-