代码之家  ›  专栏  ›  技术社区  ›  Liju Mathew

为什么我的Java WebService不能和我的Perl后端对话?

  •  0
  • Liju Mathew  · 技术社区  · 16 年前

    在我们的项目中,JavaWebService与用C和Perl编写的后端程序进行通信。我们正在使用ProcessBuilder执行后端(Unix)作业框架处理程序。

    ProcessBuilder process;
    process.Start(FrameworkHandler -a ACTION)
    

    FrameworkHandler调用Perl脚本来执行一些操作。Perl脚本在内部执行两个XML文件之间的diff命令,并使用print函数打印错误:

    sub print_error
    {
        $err_msg = shift;
        print STDERR "$err_msg\n";
    }
    

    只要文件之间存在差异,Perl程序就会挂在print_错误函数中。如果我们在unix shell中执行perl程序,它将毫无问题地工作。但是,如果我们通过WebService执行Perl,它不会在diff命令之后返回。因此,WebService也没有返回响应。XML标记中大于(>)的符号是否产生问题?

    任何帮助都非常感谢。

    部分错误:


    < diff -udr --new-file --label=postProcess1 --label=postProcess2 postProcess1 postProcess2
    < --- postProcess1
    < +++ postProcess2
    < @@ -124,6 +124,36 @@
    <               <LOCATION></LOCATION>
    <               <ADDRESS_PART1>Test Address ^D</ADDRESS_PART1 >
    <         </address_details>
    < +       <address_details>
    < +             <CITY></CITY>
    < +             <STATE>12</STATE>
    

    谢谢, 马修丽珠

    1 回复  |  直到 16 年前
        1
  •  3
  •   Bombe    16 年前

    The API docs 说:

    _156;由于一些本机平台仅为标准输入和输出流提供有限的缓冲区大小,未能及时写入输入流或读取子进程的输出流可能导致子进程阻塞,甚至死锁。

    你顺从吗?