All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.lsn.java.common.soap.handler.SoapLoggingHandler Maven / Gradle / Ivy

package io.lsn.java.common.soap.handler;

import io.lsn.java.common.soap.handler.worker.LogWorker;
import io.lsn.java.common.soap.handler.worker.Worker;

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

/**
 * @author Patryk Szlagowski 
 */
public class SoapLoggingHandler implements SOAPHandler {

    private Worker logger;

    @Override
    public Set getHeaders() {
        return null;
    }

    @Override
    public boolean handleMessage(SOAPMessageContext context) {
        this.log(context);
        return true;
    }

    @Override
    public boolean handleFault(SOAPMessageContext context) {
        this.log(context);
        return true;
    }

    @Override
    public void close(MessageContext context) {
    }

    private void log(SOAPMessageContext context) {
        try {
            this.getLogger().process(context);
        } catch (SOAPException e) {
            throw new RuntimeException(e.getMessage(), e);
        }
    }

    private Worker getLogger() {
        if (this.logger == null) {
            this.logger = new LogWorker();
        }

        return this.logger;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy