CGI-ExtDirect-2.02无法在未定义的值上调用方法“result”

时间:2013-05-18 22:22:56

标签: perl extjs ext-direct

我正在努力将perl Web应用程序的界面转换为Ext并打算使用CGI-ExtDirect-2.02库。

我遇到了一个问题,经过几个小时的挣扎,仍然没有解决。

在最简单的用例中,问题是:当我将以下行添加到action方法时,例如Demo/TestAction/getGrid时,Router.pm发生错误。在apache下执行或使用包含在库p5httpd.pl服务器中时,都会出现相同的错误。

当我删除while(<FILE>)循环时,错误消失,其他一切正常。

系统配置为:

SunOS 5.10, apache 2, perl 5.12.1.

我添加的行:

open(FILE, "</tmp/test.txt") or die("Can't open file: $!");
while (<FILE>) {
    ;
}
close(FILE);

错误:

5571 17:58:08 Server started on port 5000.
5571 17:58:08
5571 17:58:08 Point your browser at http://localhost:5000
5571 17:58:11 <- localhost: GET /direct-grid.html HTTP/1.1
5571 17:58:11 -> 200 OK /direct-grid.html: 803 bytes sent as text/html
5571 17:58:11 <- localhost: GET /example.css HTTP/1.1
5571 17:58:11 -> 200 OK /example.css: 1501 bytes sent as text/css
5571 17:58:11 <- localhost: GET /direct-grid.js HTTP/1.1
5571 17:58:11 -> 200 OK /direct-grid.js: 1599 bytes sent as application/x-javascript
5571 17:58:11 <- localhost: GET /cgi-bin/api.cgi HTTP/1.1
5571 17:58:11 -> exec'ing api.cgi
5571 17:58:13 <- localhost: POST /cgi-bin/router.cgi HTTP/1.1
5571 17:58:13 <- Content-length: 119, type: application/json; charset=UTF-8
5571 17:58:13 -> exec'ing router.cgi

Can't call method "result" on an undefined value at
/usr/perl5/site_perl/5.12.1/RPC/ExtDirect/Router.pm line 136. 
5571 17:58:13 -> 500 Internal Server Error Premature end of script headers.
<br> Status: 65280<br>Have a look at server log for stderr output of /cgi-bin/router.cgi

1 个答案:

答案 0 :(得分:0)

如果循环与问题无关,那么FILE超级全局可能存在问题。尝试将其更改为

open my $if, "<", "/tmp/test.txt";
while(<$if>) {
    # whatever
}
close $if;