sabato 15 giugno 2013

Note sugli Handlers

Gli Handlers possono essere di 2 tipi:

  • SOAPHandler , che implementano l'interfaccia java.xml.ws.handler.SOAPHandler e che hanno accesso sia al payload del messaggio che alla sezione header e a quella degli attachments;
  • LogicalHandler, che implementano l'interfaccia javax.xml.ws.handler.LogicalHandler e che hanno accesso solo al payload del messaggio.
Gli handler sono dichiarati in un file xml, di solito denominato handler-chain.xml (ma possiamo chiamarlo come vogliamo) .
L'ordine di esecuzione cambia a seconda se il messaggio è in uscita o in entrata.
In un messaggio in entrata (incoming message) vengono eseguiti prima i SOAPHandler e poi i logical handler (nell'oridine inverso stabilito nel file xml!!).
In un messaggio in uscita (outgoing message) invece sono prima coinvolti i LogicalHandler e poi i SOAPHandler(nell'ordine stabilito nel file handler-chain.xml).
E' possibile anche filtrare l'esecuzione degli handler secondo determinate condizioni, in particolare nel file handler-chain.xml, prima della lista degli handler, si possono filtrare:

  1. SERVIZI con alcuni name pattern usando l'elemento   javaee:service-name-patter;
  2. PORTE utilizzando javaee:port-name-pattern;
  3. PROTOCOLLI DI BINDING specifici inserendo l'elemento javaee:protocol-bindings

Nessun commento:

Posta un commento