Re: Mod-jk worker not being called after calling Perl handler

Mohit Anchlia <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
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 <[email protected]> wrote:
> On Tue, Nov 23, 2010 at 9:57 AM, Mohit Anchlia <[email protected]> wrote:
>> On Mon, Nov 22, 2010 at 4:14 PM, Mohit Anchlia <[email protected]> wrote:
>>> On Mon, Nov 22, 2010 at 10:18 AM, Ryan Gies <[email protected]> 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<[email protected]>  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.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.