Class WildflyTransactionClientTxBridgeIntegrationHandler

java.lang.Object
org.jboss.as.xts.txnclient.WildflyTransactionClientTxBridgeIntegrationHandler
All Implemented Interfaces:
jakarta.xml.ws.handler.Handler<jakarta.xml.ws.handler.MessageContext>

public class WildflyTransactionClientTxBridgeIntegrationHandler extends Object implements jakarta.xml.ws.handler.Handler<jakarta.xml.ws.handler.MessageContext>

Handler integrating the handle message event with WildFly Transaction Client (WFTC) SPI.

This handler manages the outbound processing where it has to be processed before the OptionalJaxWSTxInboundBridgeHandler. Check the handler enlistment at XTSHandlerDeploymentProcessor.updateXTSEndpoint(String, EndpointMetaData, List, DeploymentUnit).

NOTE: the order of the Jakarta XML Web Services handlers are defined as: For outbound messages handler processing starts with the first handler in the chain and proceeds in the same order as the handler chain. For inbound messages the order of processing is reversed.

This handler works on outbound side. The inbound side is handled by WS integration class: AbstractInvocationHandler.invokeInternal(Endpoint, Invocation). There is the place where WFTC imports the Narayana transaction for the incoming WS message.

The outbound filter is useful for suspending the WFTC wrapper transaction. Otherwise only the underlaying Narayana transaction is suspended (Narayana XTS txbridge inbound filter does so). Then when the call leaves EJB there is invoked handler TransactionRollbackSetupAction verifying existence of the transactions. If the the WFTC transaction is not suspended then the setup action rolls-back it which leads to an errors in the server log.

  • Constructor Details

    • WildflyTransactionClientTxBridgeIntegrationHandler

      public WildflyTransactionClientTxBridgeIntegrationHandler()
  • Method Details

    • handleMessage

      public boolean handleMessage(jakarta.xml.ws.handler.MessageContext messageContext)
      Specified by:
      handleMessage in interface jakarta.xml.ws.handler.Handler<jakarta.xml.ws.handler.MessageContext>
    • handleFault

      public boolean handleFault(jakarta.xml.ws.handler.MessageContext context)
      Specified by:
      handleFault in interface jakarta.xml.ws.handler.Handler<jakarta.xml.ws.handler.MessageContext>
    • close

      public void close(jakarta.xml.ws.handler.MessageContext context)
      Specified by:
      close in interface jakarta.xml.ws.handler.Handler<jakarta.xml.ws.handler.MessageContext>