Package org.apache.xmlbeans.impl.soap
Class MessageFactory
java.lang.Object
org.apache.xmlbeans.impl.soap.MessageFactory
public abstract class MessageFactory extends Object
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.
-
Constructor Summary
Constructors Constructor Description MessageFactory()Create a new MessageFactory. -
Method Summary
Modifier and Type Method Description abstract SOAPMessagecreateMessage()Creates a newSOAPMessageobject with the defaultSOAPPart,SOAPEnvelope,SOAPBody, andSOAPHeaderobjects.abstract SOAPMessagecreateMessage(MimeHeaders mimeheaders, InputStream inputstream)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.
-
Constructor Details
-
MessageFactory
public MessageFactory()Create a new MessageFactory.
-
-
Method Details
-
newInstance
Creates a newMessageFactoryobject that is an instance of the default implementation.- Returns:
- a new
MessageFactoryobject - Throws:
SOAPException- if there was an error in creating the default implementation of theMessageFactory
-
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 occurs
-
createMessage
public abstract SOAPMessage createMessage(MimeHeaders mimeheaders, InputStream inputstream) throws IOException, SOAPExceptionInternalizes the contents of the givenInputStreamobject into a newSOAPMessageobject and returns theSOAPMessageobject.- 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
-