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());
}
}
==
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());
}
}
==
'엔터프라이즈 솔루션 > Oracle Service Bus (ALSB)' 카테고리의 다른 글
Enterprise Service Bus를 이용한 차세대 JEE 아키텍쳐 확장 (2) | 2009.06.12 |
---|---|
Oracle Service Bus (OSB/ALSB)에서 Tuxedo 호출하기 (0) | 2009.05.08 |
ALSB에서 Dynamic Routing 사용하는법 (0) | 2008.12.17 |
ALSB(OSB)에서 분산 트렌젝션 처리 방법 (0) | 2008.12.03 |
Oracle Enterprise Bus (OSB) 설치시 주의 사항 (0) | 2008.11.18 |