DOM异常WRONG_DOCUMENT_ERR:向Adobe Indesign发送soap请求时

时间:2017-05-16 12:56:29

标签: java soap virtualbox axis adobe-indesign

我有Xubuntu 16.04作为主机,我在VirtualBox上运行Windows 7。在Windows机器上,我有开发人员版本 Adob​​e InDesign 2014 Server 。我用生成的文件(InDesign WSDL的java类)和Axis 1.4调用一个简单的测试脚本,但是我得到了以下错误。

Caused by: org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at localhost.Service_wsdl.ServiceStub.runScript(ServiceStub.java:305)

更深入地调试我也发现​​错误 AxisFault faultCode:Server.userException 。整个情况很奇怪,因为在我拥有Xubuntu 14.04并且我猜想早期版本的VBox之前,一切都进展顺利。我现在坚持了2个月。我看不出以前的系统和我当前的系统有什么区别。

我们有一个简单的测试,看看IDS是否正在运行和运行。我们使用以下JavaScript代码从Java调用Ping测试:

var scriptName = "BmpPing";
var scriptSource = app.scriptArgs.getValue('test');
app.consoleout('---------------------------');
app.consoleout(scriptName + " invoked: " + scriptSource);
var bmp = new File (app.activeScript.parent.fsName + '/bmp.jsx');
$.evalFile(bmp);
bmp_timediff.setStartTime();
bmp_log.debug(scriptName + " started on \"" + scriptSource + "\"...");
result = bmp_json.stringify({"PING": "PONG"});
bmp_log.info("BmpPing finished with result: '" + result + "' in: " + 
(bmp_timediff.getDiff() / 1000) + " bmp seconds");
bmp_log.debug('============================');
result;

1 个答案:

答案 0 :(得分:0)

你ping脚本并不是那么简单,有很多事情可能会出错。尝试验证您的InDesign Server是否正常工作。

试试这个js脚本:

.as-console-wrapper { max-height: 100% !important; top: 0; }

肥皂请求应该是这样的:

main();   
function main() {
    return ("success");
    // or return 1;
}

并且回复应该是:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://ns.adobe.com/InDesign/soap/"><soapenv:Body>
                          <soap:RunScript>
                          <runScriptParameters>
                          <scriptLanguage>javascript</scriptLanguage>
                          <scriptFile>C:/InDesign/test.jsx</scriptFile>
                          </runScriptParameters>
                          </soap:RunScript>
                          </soapenv:Body>
 </soapenv:Envelope>

如果您没有 - 您需要查看服务器的设置。如果你有它 - 开始一次添加一个脚本行,看看哪一个抛出异常。

另外,尝试从不同的ui进行soap调用,如SOAPUI或Postman