Non utilizzare i gestori JAX-RPC

Questa regola contrassegna i riferimenti a <handler> all'interno di web.xml , webservicesclient.xml , webservices.xml e ad ejb-jar.xml File. I gestori sono unità di elaborazione aggiuntive applicate a ogni richiesta o risposta. Possono essere concatenati tra loro, permettendo a più gestori di elaborare una richiesta in sequenza. Quando un client invia una richiesta, questa viene elaborata da ogni gestore da ogni gestore nell'ordine specificato nei descrittori di distribuzione prima di essere inviata a un provider. Per esempio per esempio, per registrare ogni richiesta del client, si può definire un gestore che legge ogni messaggio di richiesta e lo scrive in un file in un file. I gestori possono anche modificare le richieste e le risposte. A causa dell'implementazione delle nuove classi elencate di seguito, tutti i metodi sovrascritti o implementati nella classe handler sono stati aggiornati.

Tra JAX-RPC e JAX-WS sono state apportate diverse modifiche significative all'API dell'Handler sono:
- Una modifica della convenzione di denominazione. Da javax.xml.rpc.handler.Handler a javax.xml.ws.handler.soap.SoapHandler .
- La rimozione di un HandlerInfo oggetto.
- L'eliminazione delle due classi che i gestori dovevano implementare/estendere. Questi erano javax.xml.rpc.handler.Handler e javax.xml.rpc.handler.GenericHandler . I gestori devono ora implementare javax.xml.ws.handler.soap.SoapHandler oppure javax.xml.ws.handler.LogicalHandler .

Un esempio della differenza di implementazione tra i gestori JAX-RPC e i gestori JAX-WS SOAPHandler è il seguente esempio di LoggingHandler seguente esempio di un LoggingHandler.
Quando si utilizzano i gestori JAX-RPC, la dichiarazione della classe sarà come quindi:

import javax.xml.rpc.handler.GenericHandler;
    
public Class LoggingHandler extends GenericHandler {
     // Implementare qui il proprio gestore di log
    }

E definire la stessa classe usando i gestori di Soap in JAX-WS:

import javax.xml.ws.handler.soap.SOAPHandler;
importare javax.xml.ws.handler.soap.SOAPMessageContext;
    
public Classe LoggingHandler implementa SOAPHandler<SOAPMessageContext> {
     // Implementare qui il proprio gestore di log
    }