Ne használjon JAX-RPC kezelőket

Ez a szabály a következők hivatkozásait jelöli meg: <handler> elem belül web.xml , webservicesclient.xml , webservices.xml és ejb-jar.xml fájlokat. A kezelők további feldolgozási egységek, amelyeket minden kérésre vagy válaszra alkalmaznak. Összeláncolhatók, így több kezelő sorban feldolgozhatja a kérést. Amikor egy ügyfél kérelmet küld, azt minden kezelő a telepítési leírókban meghatározott sorrendben dolgozza fel, mielőtt elküldené a szolgáltatónak. Például az egyes klienskérések naplózásához megadhat egy kezelőt, amely minden kérésüzenetet beolvas és fájlba ír. A kezelők a kéréseket és válaszokat is módosíthatják. Az alább felsorolt új osztályok megvalósítása miatt a kezelő osztályban minden korábban felülírt vagy megvalósított metódus frissült.

A Handler API-ban számos jelentős változás történt a JAX-RPC és a JAX-WS között, ezek közül néhány:
- A névváltoztatás. Kezdete javax.xml.rpc.handler.Handler eddig: javax.xml.ws.handler.soap.SoapHandler .
- A kivonás egy HandlerInfo tárgy.
- Annak a két osztálynak az eltávolítása, amelyet a kezelőknek korábban implementálniuk/meghosszabbítaniuk kellett. Ezek a voltak javax.xml.rpc.handler.Handler és javax.xml.rpc.handler.GenericHandler . A kezelőknek mostantól implementálniuk kell javax.xml.ws.handler.soap.SoapHandler vagy javax.xml.ws.handler.LogicalHandler .

A JAX-RPC kezelők és a JAX-WS SOAPHandlerek közötti implementáció különbségére egy példa a LoggingHandler következő példája.
JAX-RPC Handlers használata esetén az osztály deklarációja a következőképpen néz ki így nézne ki így:

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

Ugyanannak az osztálynak a meghatározása a szappankezelők segítségével a JAX-WS-ben:

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
    }