In Previous post, I explained how to deal with XmlObject in Java Callout. We can't use the response XmlObject in OSB message flow but we can easily pass that XmlObject to another Java Callout.
In This post, I will explain how we can pass XmlObject response from one Java Callout to another Java Callout action.
1.) Create one Java class and create one static method that takes XmlObject as input parameter and return String as return type.
package CustomerAccountInfo;
2.) Package above Java class to jar file and import it to OSB project.
3.) Add another Java Callout action in TargetServicePS message flow and assign result variable of above Java Callout to input variable of this Java Callout.
4.) Now assign response from second Java Callout action to input variable of target Service.
In This post, I will explain how we can pass XmlObject response from one Java Callout to another Java Callout action.
1.) Create one Java class and create one static method that takes XmlObject as input parameter and return String as return type.
Java Class |
package CustomerAccountInfo;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import org.apache.xmlbeans.XmlObject;
public class CustomerAccount {
public
CustomerAccount() {
super();
}
public
static String getAccountInfo(XmlObject customer) {
String
CustomerAccountId = "";
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
InputStream inputStream = customer.newInputStream();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(inputStream);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("Customer");
for
(int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element)nNode;
String Name
=eElement.getElementsByTagName("Name").item(0).getTextContent();
String City
=eElement.getElementsByTagName("City").item(0).getTextContent();
String Country =eElement.getElementsByTagName("Country").item(0).getTextContent();
CustomerAccountId =CustomerAccountId + Name + City + Country;
}
}
return CustomerAccountId;
} catch
(Exception e) {
e.printStackTrace();
return "error";
}
}
}
2.) Package above Java class to jar file and import it to OSB project.
Imported Resources |
3.) Add another Java Callout action in TargetServicePS message flow and assign result variable of above Java Callout to input variable of this Java Callout.
Java Callout |
4.) Now assign response from second Java Callout action to input variable of target Service.
Target Service |
0 comments :
Post a Comment