我调用了一个用Java实现的XMLRPC,我已经验证它运行没有异常并写入输出。 Perl中的调用如下:
my $result = XMLRPC::Lite
-> proxy($url)
-> call("someMethod",
SOAP::Data->type(string => $par1),
SOAP::Data->type(string => $par2),
# etc...
)
-> result;
但是我检查了$ result并且没有定义,我得到错误的文件描述符错误。 可能会发生什么?它以前工作过,我想不出任何可能发生变化的重大事件......
答案 0 :(得分:0)
byte[] result = xServer.execute(request.getInputStream());
getLogger().log(new String(result));
response.setContentType("text/xml");
response.setContentLength(result.length);
OutputStream out = response.getOutputStream();
out.write(result);
out.flush();
getLogger().log("finished doPost");
我正在记录发送到输出的结果,因此我应该在Perl脚本的$ result变量中获取它。结果是通过Jdom库生成的XML。 当我收到错误时,记录的是一个XML,其中包含一条错误消息,表明Jdom存在问题(基本上,应用程序未完全重新编译到该版本的库)。
现在它正常工作,会记录预期的XML并成功分配给Perl中的$ result。
但是,由于字节数组在两种情况下都是XML,我不太明白它如何对调用者产生任何影响。它甚至没有寻找给定的XML结构,调用导致错误。
对此有任何见解将不胜感激。然而问题已经解决了。