在Perl中使用XMLRPC :: Lite的错误文件描述符

时间:2010-07-05 14:39:07

标签: perl xml-rpc

我调用了一个用Java实现的XMLRPC,我已经验证它运行没有异常并写入输出。 Perl中的调用如下:

  my $result = XMLRPC::Lite
    -> proxy($url)
    -> call("someMethod",
               SOAP::Data->type(string => $par1),
               SOAP::Data->type(string => $par2),
               # etc...
       )
    -> result;

但是我检查了$ result并且没有定义,我得到错误的文件描述符错误。 可能会发生什么?它以前工作过,我想不出任何可能发生变化的重大事件......

1 个答案:

答案 0 :(得分:0)

好吧,我找到了,虽然我不太明白为什么会这样。 XMLRPC应用程序执行此操作:

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结构,调用导致错误。

对此有任何见解将不胜感激。然而问题已经解决了。