1
WSDL 응답에 대한 응답 설정. 응답이 목록 내부 목록 으로 구성되는 경우 목록 또는지도에는 내부 맵이 포함될 수 있습니다.HashMap, Arraylist의 마샬, webservice wsdl의 응답으로 OMElement에 제목이있는 목록?
WSDL 응답에 대한 응답 설정. 응답이 목록 내부 목록 으로 구성되는 경우 목록 또는지도에는 내부 맵이 포함될 수 있습니다.HashMap, Arraylist의 마샬, webservice wsdl의 응답으로 OMElement에 제목이있는 목록?
private OMElement marshallMapIntoElements(String responseName, LinkedHashMap responseMap)
{
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNS = fac.createOMNamespace("http://something.com/w-ww", "w-w-w");
OMElement responseElement = fac.createOMElement(responseName, omNS);
Iterator responseIterator = responseMap.keySet().iterator();
responseElement.addChild(recursiveMapRetrive(responseMap,responseElement));
return responseElement;
}
public OMElement recursiveMapRetrive(LinkedHashMap<String, Object> response, OMElement responseElement) {
for (Map.Entry<String, Object> entry : response.entrySet()) {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNS = fac.createOMNamespace("http://services.xm.org/xsd", "tns");
OMElement fieldElement1 = responseElement;
LinkedHashMap responseMap = new LinkedHashMap();
ArrayList arrayList = new ArrayList();
String field = entry.getKey();
Object value = entry.getValue();
if (value instanceof LinkedHashMap) {
fieldElement1 = fac.createOMElement(field, omNS);
fieldElement1.addChild(recursiveMapRetrive((LinkedHashMap) value, fieldElement1));
} else if (value instanceof ArrayList) {
OMElement fieldElement = null;
for (Object object : (ArrayList) value) {
if (object instanceof LinkedHashMap) {
fieldElement = fac.createOMElement(field, omNS);
fieldElement1.addChild(recursiveMapRetrive((LinkedHashMap) object,fieldElement));
} else {
fieldElement = fac.createOMElement(field, omNS);
fieldElement.addChild(fac.createOMText(fieldElement1,object.toString()));
fieldElement1.addChild(fieldElement);
}
}
return fieldElement1;
} else {
fieldElement1 = fac.createOMElement(field, omNS);
fieldElement1.addChild(fac.createOMText(fieldElement1,value.toString()));
}
responseElement.addChild(fieldElement1);
}
return responseElement;
}