Java 从IIS上运行的PERL脚本获取输出时出现问题

Java 从IIS上运行的PERL脚本获取输出时出现问题,java,perl,iis,cgi,Java,Perl,Iis,Cgi,请注意,下面的子例程应该打印$sting,其中包含由另一个Java程序生成的一组信息。问题是$string最终为空,这表明该命令甚至没有运行。当我在IIS之外运行这个脚本时,我实际上得到了预期的输出。有什么想法吗 sub getStatus{ my $info = shift; my $env = lc($info->{'enviroment'}); my ($host,$port) = split("\-", $env); chomp ($host, $port); my $cmd =

请注意,下面的子例程应该打印$sting,其中包含由另一个Java程序生成的一组信息。问题是$string最终为空,这表明该命令甚至没有运行。当我在IIS之外运行这个脚本时,我实际上得到了预期的输出。有什么想法吗

sub getStatus{
my $info = shift;
my $env = lc($info->{'enviroment'});
my ($host,$port) = split("\-", $env);
chomp ($host, $port);
my $cmd = "java ./GetStatus $host $port";
my $string = `$cmd`;

print <<ENDOFTEXT;
HTTP/1.0 200 OK
Content-Type: text/html

<HTML>
<HEAD><TITLE>Cache Status</TITLE></HEAD>
<BODY>
<H4>Cache Status</H4>
$string
</BODY>
</HTML>
ENDOFTEXT

}
sub-getStatus{
我的$info=shift;
my$env=lc($info->{'environment'});
my($host,$port)=拆分(“\-”,$env);
chomp($host,$port);
my$cmd=“java./GetStatus$host$port”;
我的$string=`$cmd`;

print我发现了问题。我查看了$ENV{PATH}并注意到,即使在我更新了系统变量并重新启动IIS站点之后,java的路径也不包括在内。不幸的是,您需要将IIS作为服务重新启动,以获取新的环境变量。这现在可以正常工作。

尝试使用
GetStatus
的完整路径。此外,
环境
。我已经尝试定义GetStatus和string的完整路径仍然为空。我几乎可以肯定这与IIS安装程序有关,因为从命令提示符运行此脚本会提供预期的输出,但我在IIS中没有看到任何影响此的内容。Cab you
system()
其他一些通过IIS成功写入STDOUT的命令?我怀疑它与启动的程序STDOUT混在一起。您可以尝试
Expect
模块,但我怀疑这会有很大变化。我想最坏的情况是让Java程序将其输出打印到某个临时文本文件中,您的perl脚本可以使用它当然,这需要一些时间。