Package org.jboss.soa.bpel.testcase

Source Code of org.jboss.soa.bpel.testcase.HandleLogging

package org.jboss.soa.bpel.testcase;

import java.util.Iterator;
import java.util.Set;

import javax.xml.namespace.QName;
import javax.xml.soap.Node;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPHeaderElement;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;

import org.w3c.dom.NodeList;

public class HandleLogging implements SOAPHandler<SOAPMessageContext> {

  public Set<QName> getHeaders() {
    //System.out.println(">>>>>>. headers");
    return null;
  }

  public void close(MessageContext arg0) {
    //System.out.println(">>>>> close");
  }

  public boolean handleFault(SOAPMessageContext arg0) {
    //System.out.println(">>>>> fault");
    return true;
  }

  @SuppressWarnings("unchecked")
  public boolean handleMessage(SOAPMessageContext messageContext) {
    try {
      Boolean outboundProperty = (Boolean) messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

      // Mensagem chegando
      if (!outboundProperty.booleanValue()) {
        SOAPMessageContext sctx = (SOAPMessageContext) messageContext;
            SOAPMessage message     = sctx.getMessage();
            SOAPPart sp             = message.getSOAPPart();
            SOAPEnvelope senv       = sp.getEnvelope();
            SOAPHeader sh           = senv.getHeader();
           
            System.out.println("1: " + senv.getNodeName());
            Iterator it2 = senv.getChildElements();
            while (it2.hasNext()) {
              Object obj = it2.next();
              if (obj instanceof SOAPHeader) {
                SOAPHeader soapHeader = (SOAPHeader) obj;
                System.out.println("2: \t" + soapHeader.getNodeName());
                Iterator it3 = soapHeader.getChildElements();
                if (it3 != null) {
                  while (it3.hasNext()) {
                    SOAPHeaderElement soapH = (SOAPHeaderElement) it3.next();
                    System.out.println("3: \t\t" + soapH.getNodeName() + "> " + soapH.getValue());
                  }
                }
              }
              if (obj instanceof SOAPBody) {
                SOAPBody soapBody = (SOAPBody) obj;
                Iterator it4 = soapBody.getChildElements();
                if (it4 != null) {
                  while (it4.hasNext()) {
                    System.out.println("4: \t" + soapBody.getNodeName());
                    Object obj4 = it4.next();
                    if (obj4 instanceof SOAPBodyElement) {
                      SOAPBodyElement soapBodyElement = (SOAPBodyElement) obj4;
                      System.out.println("5: \t" + soapBodyElement.getNodeName());
                      Iterator it5 = soapBodyElement.getChildElements();
                      NodeList nl =  soapBodyElement.getChildNodes();
                      if (nl != null) {
                        for (int i = 0; i < nl.getLength(); i++) {
                          System.out.println("6: \t\t" + nl.item(i).getNodeName());
                        }
                      }
                      /*Object obj5 = it5.next();
                      SOAPElement element = (SOAPElement) obj5;
                      String name = element.getNodeName();
                      System.out.println("\t\t" + name);*/
                    }
                  }
                }
              }
            }
           
           
            if (sh != null) {
              Iterator it = sh.getChildElements();
              while (it.hasNext()) {
                Node node = (Node) it.next();
                System.out.println("Name: " + node.getNodeName() + " - Value: " + node.getValue());
              }
            }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }

    return true;
  }

}
TOP

Related Classes of org.jboss.soa.bpel.testcase.HandleLogging

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.