Do not use JAX-RPC Handlers

This rule flags references to <handler> element within web.xml , webservicesclient.xml , webservices.xml , and ejb-jar.xml files. Handlers are additional processing units applied to each request or response. They can be chained together, allowing multiple handlers to process a request in sequence. When a client sends a request, it is processed by each handler in the order specified in the deployment descriptors before being sent to a provider. For example, to log each client request, you can define a handler that reads each request message and writes it to a file. Handlers can also modify requests and responses. Due to the implementation of the new classes listed below, all prveiously overridden or implemented methods in the handler class have been updated.

There has been a number of significant changes in the Handler API between JAX-RPC and JAX-WS, some of these are:
- A naming convention change. From javax.xml.rpc.handler.Handler to javax.xml.ws.handler.soap.SoapHandler .
- The removal of a HandlerInfo object.
- The removal of the two classes that Handlers were previously required to implement/extend. These were javax.xml.rpc.handler.Handler and javax.xml.rpc.handler.GenericHandler . Handlers now must implement javax.xml.ws.handler.soap.SoapHandler or javax.xml.ws.handler.LogicalHandler .

An example of the difference in implementation between JAX-RPC Handlers and JAX-WS SOAPHandlers is the following example of a LoggingHandler.
When using JAX-RPC Handlers your class declaration would look like so:

import javax.xml.rpc.handler.GenericHandler;
    
public Class LoggingHandler extends GenericHandler {
     // Implement your loggin Handler here
    }

And to define the same class using Soap Handlers in JAX-WS:

import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;
    
public Class LoggingHandler implements SOAPHandler<SOAPMessageContext> {
     // Implement your loggin Handler here
    }