Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

16.2. Overview of Handlers and Handler Chains

Each endpoint config may be associated with PRE and POST handler chains. Each handler chain may include JAXWS-compliant handlers. For outbound messages, PRE handler chain handlers are executed before any handler attached to the endpoints using standard JAXWS means, such as the @HandlerChain annotation. POST handler chain handlers are executed after usual endpoint handlers. For inbound messages, the opposite applies. JAX-WS is a standard API for XML-based web services, and is documented at http://jcp.org/en/jsr/detail?id=224.
A handler chain may also include a protocol-bindings attribute, which sets the protocols which trigger the chain to start.
A JAXWS handler is a child element handler within a handler chain. The handler takes a class attribute, which is the fully-qualified classname of the handler class. When the endpoint is deployed, an instance of that class is created for each referencing deployment. Either the deployment class loader or the class loader for module org.jboss.as.webservices.server.integration must be able to load the handler class.

Procedure 16.1. How to add handler-chains and handlers via the CLI

  1. Start the JBoss EAP CLI
    EAP_HOME/bin/jboss-cli.sh
    
  2. Add handler chain and handlers via JBoss CLI:

    Example 16.1. Add a handler chain

    [standalone@localhost:9999 /] /subsystem=webservices/endpoint-config=Standard-Endpoint-Config/post-handler-chain=my-handlers:add(protocol-bindings="##SOAP11_HTTP")

    Example 16.2. Add a handler

    [standalone@localhost:9999 /] /subsystem=webservices/endpoint-config=Standard-Endpoint-Config/post-handler-chain=my-handlers/handler=foo-hander:add(class="org.jboss.ws.common.invocation.RecordingServerHandler")

    Example 16.3. Add a handler

    [standalone@localhost:9999 /] /subsystem=webservices/endpoint-config=Standard-Endpoint-Config/post-handler-chain=my-handlers/handler=bar-handler:add(class="com.arjuna.webservices11.wsarj.handler.InstanceIdentifierInHandler")
  3. Reload the server:
    [standalone@localhost:9999 /] reload
  4. Confirm the handler-chain and handlers were added correctly:

    Example 16.4. Read a handler-chain

    [standalone@localhost:9999 /] /profile=default/subsystem=webservices/endpoint-config=Standard-Endpoint-Config/post-handler-chain=my-handlers:read-resource

    Example 16.5. Read a handler

    [standalone@localhost:9999 /] /profile=default/subsystem=webservices/endpoint-config=Standard-Endpoint-Config/post-handler-chain=my-handlers/handler=bar-handler:read-resource
The options used in the commands above can be modified as required to add or modify handlers.
The handlers available in JBoss EAP can be found in the API Documentation javadocs:
More information about handlers, handler-chains, endpoints and related issues can be also found in the JBoss EAP Development Guide available at https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/?version=6.4