Class WildflyTransactionClientTxBridgeIntegrationHandler

  • All Implemented Interfaces:
    javax.xml.ws.handler.Handler<javax.xml.ws.handler.MessageContext>

    public class WildflyTransactionClientTxBridgeIntegrationHandler
    extends Object
    implements javax.xml.ws.handler.Handler<javax.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 Detail

      • WildflyTransactionClientTxBridgeIntegrationHandler

        public WildflyTransactionClientTxBridgeIntegrationHandler()
    • Method Detail

      • handleMessage

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

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

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