Class MessageFactoryImpl
- java.lang.Object
-
- javax.xml.soap.MessageFactory
-
- org.apache.axis2.saaj.MessageFactoryImpl
-
public class MessageFactoryImpl extends MessageFactory
A factory for creating
SOAPMessage
objects.A JAXM client performs the following steps to create a message.
- Creates a
MessageFactory
object from aProviderConnection
object (con
in the following line of code). TheString
passed to thecreateMessageFactory
method is the name of of a messaging profile, which must be the URL for the schema.MessageFactory mf = con.createMessageFactory(schemaURL);
- Calls the method
createMessage
on theMessageFactory
object. All messages produced by thisMessageFactory
object will have the header information appropriate for the messaging profile that was specified when theMessageFactory
object was created.SOAPMessage m = mf.createMessage();
MessageFactory
object 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 thenewInstance
method to create aMessageFactory
object.All
MessageFactory
objects, regardless of how they are created, will produceSOAPMessage
objects that have the following elements by default:- A
SOAPPart
object - A
SOAPEnvelope
object - A
SOAPBody
object - A
SOAPHeader
object
MessageFactory
object was created using aProviderConnection
object, which means that it was initialized with a specified profile, it will produce messages that also come prepopulated with additional entries in theSOAPHeader
object and theSOAPBody
object. The content of a newSOAPMessage
object depends on which of the twoMessageFactory
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 theInputStream
object and headers from theMimeHeaders
object
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 String
soapVersion
-
Constructor Summary
Constructors Constructor Description MessageFactoryImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SOAPMessage
createMessage()
Creates a newSOAPMessage
object with the defaultSOAPPart
,SOAPEnvelope
,SOAPBody
, andSOAPHeader
objects.SOAPMessage
createMessage(MimeHeaders mimeheaders, InputStream inputstream)
Internalizes the contents of the givenInputStream
object into a newSOAPMessage
object and returns theSOAPMessage
object.void
setProcessMTOM(boolean processMTOM)
Specify whether MTOM messages should be processed or parsed literally.void
setSOAPVersion(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 newSOAPMessage
object with the defaultSOAPPart
,SOAPEnvelope
,SOAPBody
, andSOAPHeader
objects. Profile-specific message factories can choose to prepopulate theSOAPMessage
object with profile-specific headers.Content can be added to this message's
SOAPPart
object, and the message can be sent "as is" when a message containing only a SOAP part is sufficient. Otherwise, theSOAPMessage
object needs to create one or moreAttachmentPart
objects and add them to itself. Any content that is not in XML format must be in anAttachmentPart
object.- Specified by:
createMessage
in classMessageFactory
- Returns:
- a new
SOAPMessage
object - 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 givenInputStream
object into a newSOAPMessage
object and returns theSOAPMessage
object.- Specified by:
createMessage
in classMessageFactory
- Parameters:
mimeheaders
- the transport-specific headers passed to the message in a transport-independent fashion for creation of the messageinputstream
- theInputStream
object that contains the data for a message- Returns:
- a new
SOAPMessage
object containing the data from the givenInputStream
object - 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
DataHandler
backedOMText
nodes, there is no such requirement in SAAJ. The only requirement there is thatSOAPMessage.getAttachment(javax.xml.soap.SOAPElement)
returns the relevantAttachmentPart
when 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
-
-