Finally I have something that seems to work. I could find only this way of calling mod-jk after perlhandler gets called. Does it look ok?
In <VirtualHost .. PerlModule Apache2::Rules2 SetHandler modperl PerlHandler Apache2::Rules2 JkMount ... ---- package Apache2::Rules2; #use lib '/home/.mohit/mod_perl-2.0.4/lib'; use strict; use warnings; use Apache2::Const qw(:common); use Apache2::RequestRec (); use Apache2::RequestIO (); use Apache2::Filter (); use APR::Table (); sub handler { my $r = shift; my $headers_in = $r->headers_in(); if ($headers_in->get("Content-Length") < 20){ $r->handler("jakarta-servlet"); return DECLINED; } #$r->content_type('text/plain'); #$r->print('Rules'); return OK; # We must return a status to mod_perl } 1; # This is a perl module so we must return true to perl On Tue, Nov 23, 2010 at 4:17 PM, Mohit Anchlia <mohitanch...@gmail.com> wrote: > On Tue, Nov 23, 2010 at 9:57 AM, Mohit Anchlia <mohitanch...@gmail.com> wrote: >> On Mon, Nov 22, 2010 at 4:14 PM, Mohit Anchlia <mohitanch...@gmail.com> >> wrote: >>> On Mon, Nov 22, 2010 at 10:18 AM, Ryan Gies <r...@livesite.net> wrote: >>>> You should be putting "use strict;" at the top of your Perl files (which >>>> would have reported the following error) >>>> >>>> The constant is DECLINED, not DECLINE >>>> >>> Thanks. I now changed it to DECLINED. Now it tries to forward the >>> request but looks like instead of forwarding it to mod-jk worker it is >>> trying to locate document on the same server. >>> >>> >>> http://ws1/bridge/e?val >>> HTTP request sent, awaiting response... 404 Not Found >>> 16:11:45 ERROR 404: Not Found. >>> >>> In access logs it says e?val not found. It's supposed to forward this >>> request to mod_jk worker. Because bridge is a servlet in jboss app >>> server and apache sends it using mod_jk. >> >> Can someone advise why it's not going to mod_jk? How do I debug this? > > I haven't received any advise. Meanwhile I am thinking is it possible > to chain the handlers such that modperl calls "SetHandler > jakarta-servlet" ? Is there a way this can be done? > >> >>>> >>>> On 11/22/2010 12:53 PM, Mohit Anchlia wrote: >>>>> >>>>> I tried >>>>> >>>>> package Apache2::Rules2; >>>>> #use lib '/home/.mohit/mod_perl-2.0.4/lib'; >>>>> use Apache2::Const qw(:common); >>>>> use Apache2::RequestRec (); >>>>> use Apache2::RequestIO (); >>>>> sub handler { >>>>> my $r = shift; >>>>> #$r->content_type('text/plain'); >>>>> #$r->print("mod_perl rules!\n"); >>>>> return DECLINE; # We must return a status to mod_perl >>>>> } >>>>> 1; # This is a perl module so we must return true to perl >>>>> >>>>> But even though I am using DECLINE it doesn't continue going to >>>>> mod-jk. Handler just becomes the final destination in this case. How >>>>> can I write handler such that it continues sending request to mod-jk. >>>>> >>>>> On Sat, Nov 20, 2010 at 7:14 AM, Ryan Gies<r...@livesite.net> wrote: >>>>> >>>>>> >>>>>> Have you tried returning Apache2::Const::DECLINED instead? >>>>>> >>>>>> http://perl.apache.org/docs/2.0/user/handlers/intro.html#Handler_Return_Values >>>>>> >>>>>> On 11/20/2010 12:09 AM, Mohit Anchlia wrote: >>>>>> >>>>>>> >>>>>>> I am trying to look at how handlers work so I created a very simple >>>>>>> perl handler that just return "OK". And I added an entry "PerlModule" >>>>>>> and the "PerlHandler". I also was able to build mod_perl2.so. When I >>>>>>> do a GET request with handler ON I see that Handler gets called but >>>>>>> then the call is not going further to the mod-jk worker. Can someone >>>>>>> please tell me what might be going on? I thought OK will continue down >>>>>>> the cycle. >>>>>>> >>>>>>> >>>>>> >>>>>> >>>> >>>> >>> >> >