在我们的项目中,Java Web服务与用C和Perl编写的后端程序进行通信以进行处理。我们正在使用ProcessBuilderto执行后端(UNIX)作业FrameworkHandler。
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_error函数中挂起文件之间存在差异时。如果我们在UNIX shell中执行Perl程序,它可以正常工作。但是如果我们通过webservice执行Perl,它就不会在diff命令之后返回。因此,Web服务也没有返回响应。 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>
谢谢, Mathew Liju
答案 0 :(得分:3)