엔터프라이즈 솔루션/Oracle Service Bus (ALSB)

SOAP TO REST Convert(Transform)

Terry Cho 2008. 12. 19. 19:34
ALSB에서
SOAP 을 REST POX (Plain Old Xml)로 변환하는 XmlBeans 구현 예제. ALSB에서 Java Callout으로 사용이 가능함
==
import javax.xml.namespace.QName;

import org.apache.xmlbeans.XmlCursor;
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlCursor.TokenType;

public class RESTTransformer {
    public static XmlObject toREST(XmlObject soap){
       
        XmlCursor cur = soap.newCursor();
        cur.toFirstChild();
        cur.toChild(new QName("http://schemas.xmlsoap.org/soap/envelope/","Body"));

        traverse(cur);
        cur.dispose();
        return null;
    }
   
    public static void traverse(XmlCursor cur){
        if(cur.toFirstChild()){
            String name;
            do{
               
                name = cur.getName().getLocalPart();
                System.out.println("<"+name+">");
       
                traverse(cur);
                System.out.println("</"+name+">");

            }while(cur.toNextSibling());

            cur.toParent();
        }else{
            // is Leaf
            System.out.println(cur.getTextValue());
        }
    }
   
==
그리드형