2010-07-05 40 views
0

我有一个对Java实现的XMLRPC的调用,我已经验证了没有例外的情况下运行并写入输出。 Perl中的调用是这样的:在Perl中使用XMLRPC :: Lite的错误文件描述符

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

但后来我检查$结果并没有定义,我得到错误的文件描述符错误。 会发生什么?这是工作之前,我想不出任何重大的可能已经改变...

+0

您的网址是否有效? “$ par1”和“$ par2”是否按预期定义? – Zaid 2010-07-05 14:54:01

+0

是的,实际的XMLRPC正在成功执行。我已经在应用程序中放置了日志,并且我确切知道POST处理程序(servlet doPost())正常结束。所以可以排除URL和参数问题。 – 2010-07-05 15:09:20

回答

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脚本的$结果变量的结果。结果是通过Jdom库生成的XML。 虽然我得到了错误,但得到的记录是一个XML,它包含一个错误消息,指示Jdom出现问题(基本上,该应用程序未完全重新编译为该库的该版本)。

现在,它的工作原理是,预期的XML被记录并成功地分配给Perl中的$ result。

但是,由于在这两种情况下字节数组都是XML,所以我不太了解它对调用者有什么影响。它甚至不在寻找给定的XML结构,这个调用导致了一个错误。

任何有关这方面的见解将不胜感激。但问题解决了。

相关问题