Labs SD > SOAP Handlers

Código de um Handler

package example.ws.handler;

import java.util.Set;
import javax.xml.namespace.QName;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;

public class EmptyHandler implements SOAPHandler {

    /**
     * Gets the names of the header blocks that can be processed by this Handler instance.
     * If null, processes all.
     */
    public Set getHeaders() {
        return null;
    }

    /**
     * The handleMessage method is invoked for normal processing of inbound and
     * outbound messages.
     */
     public boolean handleMessage(SOAPMessageContext smc) {
        return true;
    }

    /** The handleFault method is invoked for fault message processing. */
    public boolean handleFault(SOAPMessageContext smc) {
        return true;
    }

    /**
     * Called at the conclusion of a message exchange pattern just prior to the
     * JAX-WS runtime dispatching a message, fault or exception.
     */
    public void close(MessageContext messageContext) {

    }

}

 

Processamento da mensagem

O retorno do método handleMessage() determina de que forma prossegue o processamento da mensagem.
Se for 'true' o processamento deve prosseguir; se for 'false' bloqueia o processamento da mensagem, mudando-lhe o sentido e fazendo-a voltar para o cliente.

A utilização de exceções permite modificar o normal processamento das mensagens SOAP:


© Docentes de Sistemas Distribuídos, Dep. Eng. Informática, Técnico Lisboa