Class MessageFactoryImpl
A factory for creating SOAPMessage objects.
A JAXM client performs the following steps to create a message.
- Creates a
MessageFactoryobject from aProviderConnectionobject (conin the following line of code). TheStringpassed to thecreateMessageFactorymethod is the name of of a messaging profile, which must be the URL for the schema.MessageFactory mf = con.createMessageFactory(schemaURL);
- Calls the method
createMessageon theMessageFactoryobject. All messages produced by thisMessageFactoryobject will have the header information appropriate for the messaging profile that was specified when theMessageFactoryobject was created.SOAPMessage m = mf.createMessage();
MessageFactory object using the method
newInstance, as shown in the following line of code. MessageFactory mf = MessageFactory.newInstance();A standalone client (a client that is not running in a container) can use the
newInstance method to create a MessageFactory
object.
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
MessageFactory object was
created using a ProviderConnection object, which means that it was initialized with
a specified profile, it will produce messages that also come prepopulated with additional entries
in the 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()-- message has no content
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.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionjakarta.xml.soap.SOAPMessageCreates a newSOAPMessageobject with the defaultSOAPPart,SOAPEnvelope,SOAPBody, andSOAPHeaderobjects.jakarta.xml.soap.SOAPMessagecreateMessage(jakarta.xml.soap.MimeHeaders mimeheaders, InputStream inputstream) Internalizes the contents of the givenInputStreamobject into a newSOAPMessageobject and returns theSOAPMessageobject.voidsetProcessMTOM(boolean processMTOM) Specify whether MTOM messages should be processed or parsed literally.voidsetSOAPVersion(String soapVersion) Methods inherited from class jakarta.xml.soap.MessageFactory
newInstance, newInstance
-
Field Details
-
soapVersion
-
-
Constructor Details
-
MessageFactoryImpl
public MessageFactoryImpl()
-
-
Method Details
-
createMessage
public jakarta.xml.soap.SOAPMessage createMessage() throws jakarta.xml.soap.SOAPExceptionCreates 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.- Specified by:
createMessagein classjakarta.xml.soap.MessageFactory- Returns:
- a new
SOAPMessageobject - Throws:
jakarta.xml.soap.SOAPException- if a SOAP error occurs java.lang.UnsupportedOperationException - if the protocol of this MessageFactory instance is DYNAMIC_SOAP_PROTOCOL
-
createMessage
public jakarta.xml.soap.SOAPMessage createMessage(jakarta.xml.soap.MimeHeaders mimeheaders, InputStream inputstream) throws IOException, jakarta.xml.soap.SOAPException Internalizes the contents of the givenInputStreamobject into a newSOAPMessageobject and returns theSOAPMessageobject.- Specified by:
createMessagein classjakarta.xml.soap.MessageFactory- Parameters:
mimeheaders- the transport-specific headers passed to the message in a transport-independent fashion for creation of the messageinputstream- theInputStreamobject that contains the data for a message- Returns:
- a new
SOAPMessageobject containing the data from the givenInputStreamobject - Throws:
IOException- if there is a problem in reading data from the input streamjakarta.xml.soap.SOAPException- if the message is invalid
-
setSOAPVersion
-
setProcessMTOM
public void setProcessMTOM(boolean processMTOM) Specify whether MTOM messages should be processed or parsed literally.The way MTOM messages are handled fundamentally differs between Axiom and SAAJ. While Axiom replaces xop:Include elements by
DataHandlerbackedOMTextnodes, there is no such requirement in SAAJ. The only requirement there is thatSOAPMessage.getAttachment(jakarta.xml.soap.SOAPElement)returns the relevantAttachmentPartwhen applied to an xop:Include element.This method allows to make this SAAJ implementation behave as Axiom, i.e. to substitute xop:Include elements.
- Parameters:
processMTOM- whether xop:Include elements should be substituted
-