我正在尝试使用以下java脚本代码将json对象转换为xml文档:
function createXML(oObjTree) {
function loadObjTree(oParentEl, oParentObj) {
var vValue,
oChild;
if (oParentObj instanceof String || oParentObj instanceof Number || oParentObj instanceof Boolean) {
oParentEl.appendChild(oNewDoc.createTextNode(oParentObj.toString()));
} else if (oParentObj.constructor === Date) {
oParentEl.appendChild(oNewDoc.createTextNode(oParentObj.toGMTString()));
}
for (var sName in oParentObj) {
if (isFinite(sName)) {
continue;
}
vValue = oParentObj[sName];
if (sName === "keyValue") {
if (vValue !== null && vValue !== true) {
oParentEl.appendChild(oNewDoc.createTextNode(vValue.constructor === Date ? vValue.toGMTString() : String(vValue)));
}
} else if (sName === "keyAttributes") {
for (var sAttrib in vValue) {
oParentEl.setAttribute(sAttrib, vValue[sAttrib]);
}
} else if (sName.charAt(0) === "@") {
oParentEl.setAttribute(sName.slice(1), vValue);
} else if (vValue.constructor === Array) {
for (var nItem = 0; nItem < vValue.length; nItem++) {
oChild = oNewDoc.createElement(sName);
loadObjTree(oChild, vValue[nItem]);
oParentEl.appendChild(oChild);
}
} else {
oChild = oNewDoc.createElement(sName);
if (vValue instanceof Object) {
loadObjTree(oChild, vValue);
} else if (vValue !== null && vValue !== true) {
oChild.appendChild(oNewDoc.createTextNode(vValue.toString()));
}
oParentEl.appendChild(oChild);
}
}
}
const oNewDoc = document.implementation.createDocument("", "", null);
loadObjTree(oNewDoc, oObjTree);
return oNewDoc;
}; 现在,我想使用java脚本中的Ajax调用将转换后的xml文档发送到一个安静的Web服务 我的ajax电话如下:
var lookupReq = (window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"));
var xmlDoc= createXML(lookupJson);
//make the ajax call to hit the web service
lookupReq.send(xmlDoc);
我的网络服务如下:
@Path("/ImageServlet")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
public class ImageViewerServlet {
@POST
@Path("/lookup")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
public Response getObjectId(GAIssuesLookupArg gaArg)
{
System.out.println("gaArgs : "+gaArg);
return null;
}
}
在Web服务端,我使用JAXB进行编组和解组。 但是,当我尝试使用上面提到的ajax调用来访问Web服务时,我收到错误请求错误。任何人都可以告诉我我在做错误并更正我的代码吗? 如果我的问题不明确,请告诉我。提前谢谢。