Class HTTPSOAP11Encoder

    • Constructor Detail

      • HTTPSOAP11Encoder

        public HTTPSOAP11Encoder()
        Constructor.
    • Method Detail

      • prepareContext

        public void prepareContext()
                            throws MessageEncodingException
        This method should prepare the message context by creating and populating any binding-specific data structures required in the MessageContext, prior to actually encoding.

        This method should be called after the MessageContext has been set, and before any binding-specific Handler or HandlerChains are invoked.

        Example: For a SOAP encoder, this method would create and store the basic SOAP Envelope structure in the message context, so that Handlers that are invoked have a place to which to add headers.

        This method may be a no-op if not required by the binding, or if the message type of the context implies that the binding-specific structures have already been created elsewhere (e.g. message-oriented code where the calling code already knows its SOAP, and is operating on the raw SOAP envelope anyway).

        . Default implementation is a no-op.
        Specified by:
        prepareContext in interface MessageEncoder
        Overrides:
        prepareContext in class AbstractMessageEncoder
        Throws:
        MessageEncodingException - if there is a problem preparing the message context for encoding
      • storeSOAPEnvelope

        protected void storeSOAPEnvelope​(Envelope envelope)
        Store the constructed SOAP envelope in the message context for later encoding.
        Parameters:
        envelope - the SOAP envelope
      • getSOAPEnvelope

        protected Envelope getSOAPEnvelope()
        Retrieve the previously stored SOAP envelope from the message context.
        Returns:
        the previously stored SOAP envelope
      • buildAndStoreSOAPMessage

        protected void buildAndStoreSOAPMessage​(@Nonnull
                                                XMLObject payload)
        Builds the SOAP message to be encoded.
        Parameters:
        payload - body of the SOAP message
      • prepareHttpServletResponse

        protected void prepareHttpServletResponse()
                                           throws MessageEncodingException

        This implementation performs the following actions on the context's HttpServletResponse:

        1. Adds the HTTP header: "Cache-control: no-cache, no-store"
        2. Adds the HTTP header: "Pragma: no-cache"
        3. Sets the character encoding to: "UTF-8"
        4. Sets the content type to: "text/xml"
        5. Sets the SOAPAction HTTP header the value returned by getSOAPAction(), if that returns non-null.

        Subclasses should NOT set the SOAPAction HTTP header in this method. Instead, they should override the method getSOAPAction().

        Throws:
        MessageEncodingException - thrown if there is a problem preprocessing the transport
      • getSOAPAction

        protected String getSOAPAction()
        Determine the value of the SOAPAction HTTP header to send.

        The default behavior is to return the value of the SOAP Envelope's WS-Addressing Action header, if present.

        Returns:
        a SOAPAction HTTP header URI value
      • getHTTPResponseStatusCode

        protected int getHTTPResponseStatusCode()
        Get the HTTP response status code to return.
        Returns:
        the HTTP response status code