2010-11-27 79 views
0

它與mod_perl有關。PerlInputFilterHandler一次又一次地調用自己

我只在我的位置標記中指定了一個過濾器。

<Location /testproj/AServlet> 
SetHandler modperl 
PerlInputFilterHandler MyApache2::Test3 
</Location> 

在這裏,當我在瀏覽器中點擊http://localhost/testproj/AServlet URL。它只是掛起。 Test3過濾器一次又一次地調用自己。我想只執行一次Test3過濾器並將控制權交給「AServlet」資源。

我該怎麼辦?

謝謝。

回答

1

這是因爲你沒有調用旅中的下一個過濾器。

package TestFilter; 

use base qw(Apache2::Filter); 
use Apache2::Const qw(OK); 
use APR::Const qw(SUCCESS); 

sub handler { 
    my ($f, $bb, $mode, $block, $readbytes) = @_; 
    my $rv = $f->next->get_brigade($bb, $mode, $block, $readbytes); 
    return $rv unless $rv == APR::Const::SUCCESS; 

    # do you filtering stuff 

    return OK; 
} 

1;
+0

謝謝傑里米。該代碼工作良好,不會再次調用自身,但它不會傳遞控制到所請求的資源(「AServlet」)。它顯示'頁面無法顯示',日誌中沒有錯誤。 – 2010-11-29 04:35:08

相關問題