Class MessageFactoryImpl
- java.lang.Object
-
- javax.xml.soap.MessageFactory
-
- org.apache.axis2.saaj.MessageFactoryImpl
-
public class MessageFactoryImpl extends MessageFactory
A factory for creating
SOAPMessageobjects.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();
MessageFactoryobject using the methodnewInstance, 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 thenewInstancemethod to create aMessageFactoryobject.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
MessageFactoryobject was created using aProviderConnectionobject, which means that it was initialized with a specified profile, it will produce messages that also come prepopulated with additional entries in theSOAPHeaderobject and theSOAPBodyobject. The content of a newSOAPMessageobject depends on which of the twoMessageFactorymethods 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.
- Creates a
-
-
Field Summary
Fields Modifier and Type Field Description protected StringsoapVersion
-
Constructor Summary
Constructors Constructor Description MessageFactoryImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SOAPMessagecreateMessage()Creates a newSOAPMessageobject with the defaultSOAPPart,SOAPEnvelope,SOAPBody, andSOAPHeaderobjects.SOAPMessagecreateMessage(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 javax.xml.soap.MessageFactory
newInstance, newInstance
-
-
-
-
Field Detail
-
soapVersion
protected String soapVersion
-
-
Method Detail
-
createMessage
public 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.- Specified by:
createMessagein classMessageFactory- Returns:
- a new
SOAPMessageobject - Throws:
SOAPException- if a SOAP error occurs java.lang.UnsupportedOperationException - if the protocol of this MessageFactory instance is DYNAMIC_SOAP_PROTOCOL
-
createMessage
public SOAPMessage createMessage(MimeHeaders mimeheaders, InputStream inputstream) throws IOException, SOAPException
Internalizes the contents of the givenInputStreamobject into a newSOAPMessageobject and returns theSOAPMessageobject.- Specified by:
createMessagein classMessageFactory- 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 streamSOAPException- if the message is invalid
-
setSOAPVersion
public void setSOAPVersion(String soapVersion)
-
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(javax.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
-
-