Class AddActionHandler

All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent, MessageHandler

public class AddActionHandler extends AbstractHeaderGeneratingMessageHandler
Handler implementation that adds a wsa:Action header to the outbound SOAP envelope.

If a Fault is registered in the context, the value from WSAddressingContext.getFaultActionURI() will be used, if present. If not, then the locally-configured value from getFaultActionURI() will be used. If neither is present, then a value will be selected based on the Fault.getCode() via selectActionURIForFault(Fault).

The value from WSAddressingContext.getActionURI() will be used, if present. If not, then the locally-configured value from getActionURI() will be used. If neither is present, no header will be added.

  • Field Details

    • log

      private org.slf4j.Logger log
      Logger.
    • actionURI

      private String actionURI
      The configured Action URI value.
    • faultActionURI

      private String faultActionURI
      The configured Fault Action URI value.
    • sendURI

      private String sendURI
      The actual calculated Action URI to send.
  • Constructor Details

    • AddActionHandler

      public AddActionHandler()
  • Method Details

    • getActionURI

      @Nullable public String getActionURI()
      Get the Action URI.
      Returns:
      the URI, or null
    • setActionURI

      public void setActionURI(@Nullable String uri)
      Set the expected Action URI value.
      Parameters:
      uri - the new URI value
    • getFaultActionURI

      @Nullable public String getFaultActionURI()
      Get the Fault Action URI.
      Returns:
      the URI, or null
    • setFaultActionURI

      public void setFaultActionURI(@Nullable String uri)
      Set the Fault Action URI value.
      Parameters:
      uri - the new URI value
    • doPreInvoke

      protected boolean doPreInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerException
      Called prior to execution, handlers may override this method to perform pre-processing for a request.

      The default impl applies the Predicate set via the AbstractMessageHandler.setActivationCondition(Predicate).

      If false is returned, execution will not proceed.

      Subclasses which override this method should generally invoke the super version of this method first, so that the activation condition will be applied up front, and immediately return false if the super version returns false. This avoids unnecessary execution of the remaining pre-invocation code if the handler ultimately will not execute.

      Overrides:
      doPreInvoke in class AbstractHeaderGeneratingMessageHandler
      Parameters:
      messageContext - the message context on which to invoke the handler
      Returns:
      true iff execution should proceed
      Throws:
      MessageHandlerException - if there is a problem executing the handler pre-routine
    • selectActionURIForFault

      @Nonnull protected String selectActionURIForFault(@Nonnull Fault fault)
      Select the Action URI value to return for the given Fault.
      Parameters:
      fault - the fault
      Returns:
      the selected Action URI
    • doInvoke

      protected void doInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerException
      Performs the handler logic.
      Specified by:
      doInvoke in class AbstractMessageHandler
      Parameters:
      messageContext - the message context on which to invoke the handler
      Throws:
      MessageHandlerException - if there is an error invoking the handler on the message context