org.apache.axis2.transport
Interface MessageFormatter

All Known Implementing Classes:
ApplicationXMLFormatter, FastInfosetMessageFormatter, FastInfosetPOXMessageFormatter, JSONBadgerfishMessageFormatter, JSONMessageFormatter, MultipartFormDataFormatter, SOAPMessageFormatter, XFormURLEncodedFormatter

public interface MessageFormatter

MessageFormatter implementations are used by Axis2 to support serialization of messages to different message formats. (Eg: JSON). Users can register MessageFormatter implementations against a message type using the axis2.xml. Message type for a message can be specified by setting the "messageType" property in the MessageContext. This can also be given as a parameter in the service.xml/axis2.xml for a per service based/engine wide configuration.


Method Summary
 java.lang.String formatSOAPAction(MessageContext messageContext, org.apache.axiom.om.OMOutputFormat format, java.lang.String soapAction)
           
 byte[] getBytes(MessageContext messageContext, org.apache.axiom.om.OMOutputFormat format)
           
 java.lang.String getContentType(MessageContext messageContext, org.apache.axiom.om.OMOutputFormat format, java.lang.String soapAction)
          Different message formats can set their own content types Eg: JSONFormatter can set the content type as application/json
 java.net.URL getTargetAddress(MessageContext messageContext, org.apache.axiom.om.OMOutputFormat format, java.net.URL targetURL)
          Some message formats may want to alter the target url.
 void writeTo(MessageContext messageContext, org.apache.axiom.om.OMOutputFormat format, java.io.OutputStream outputStream, boolean preserve)
          To support deffered writing transports as in http chunking..
 

Method Detail

getBytes

byte[] getBytes(MessageContext messageContext,
                org.apache.axiom.om.OMOutputFormat format)
                throws AxisFault
Returns:
a byte array of the message formatted according to the given message format.
Throws:
AxisFault

writeTo

void writeTo(MessageContext messageContext,
             org.apache.axiom.om.OMOutputFormat format,
             java.io.OutputStream outputStream,
             boolean preserve)
             throws AxisFault
To support deffered writing transports as in http chunking.. Axis2 was doing this for some time..

Preserve flag can be used to preserve the envelope for later use. This is usefull when implementing authentication machnisms like NTLM.

Parameters:
outputStream -
preserve - : do not consume the OM when this is set..
Throws:
AxisFault

getContentType

java.lang.String getContentType(MessageContext messageContext,
                                org.apache.axiom.om.OMOutputFormat format,
                                java.lang.String soapAction)
Different message formats can set their own content types Eg: JSONFormatter can set the content type as application/json

Parameters:
messageContext -
format -
soapAction -

getTargetAddress

java.net.URL getTargetAddress(MessageContext messageContext,
                              org.apache.axiom.om.OMOutputFormat format,
                              java.net.URL targetURL)
                              throws AxisFault
Some message formats may want to alter the target url.

Returns:
the target URL
Throws:
AxisFault

formatSOAPAction

java.lang.String formatSOAPAction(MessageContext messageContext,
                                  org.apache.axiom.om.OMOutputFormat format,
                                  java.lang.String soapAction)
Returns:
this only if you want set a transport header for SOAP Action


Copyright © 2007 Apache Web Services Project. All Rights Reserved.