Thanks David. With the solution that you have suggested, I have to encode the url twice to make sure '%' in '%2f' is again encoded. I do agree with you in that special characters like '%' shouldn't be part of the request URI, but considering the fact that I am using a REST implementation where the resources are identified by the URI, I don't have any other option.
But I am a bit puzzled as the application in Tomcat accepts both http://xx.xx.xx/APIServer/authz/list/master%2fAB?apikey=WEB_INTERFACE_API and http://xx.xx.xx/APIServer/authz/list/master/AB?apikey=WEB_INTERFACE_API So if the load-balancer forwards that request in any form to the application, it will work. But it seems that the load balancer is just ignoring it. Thanks Jugs -----Original Message----- From: David Smith [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 03, 2007 3:55 PM To: Tomcat Users List Subject: Re: MOD_JK Redirection issues I can see how the server might decode %2f in the path to /. The % character is a special character in urls and should be decoded. If you really mean for the url to literally include '%2f' as part of the file name, I would think the url should be: http://xxx.xxx.xxx/APIServer/authz/list/master%252fAB?apikey=WEB_INTERFACE_A PI Note I replaced the % character with it's encoded form %25, Having said that, I don't think it's a good idea to use special characters like % as part of the resource name. It creates nothing but headaches as the server has to figure out whether the url has already been normalized or not. --David Jagadeesh wrote: > Further to my last mail, whenever I try accessing this url > > http://xxx.xxx.xxx/APIServer/authz/list/master%2fAB?apikey=WEB_INTERFACE_API > > the browser shows exactly the below response > > "Not Found > > The requested URL /APIServer/authz/list/master/AB was not found on this > server. > Apache/2.2.2 (Fedora) Server at cluster.omnidrive.com Port 80" > > The interesting thing is '%2F' has been replaced with a '/' > > Any thoughts??? > > Thanks > Jugs > > -----Original Message----- > From: Jagadeesh [mailto:[EMAIL PROTECTED] > Sent: Wednesday, January 03, 2007 2:38 PM > To: 'Tomcat Users List' > Subject: RE: MOD_JK Redirection issues > > I changed the loglevel to TRACE, But I couldn't find any new log file. The > access_log now shows > > 61.17.42.35 - - [03/Jan/2007:03:48:05 +0000] "GET > /APIServer/authz/list/master/AB?apikey=WEB_INTERFACE_API HTTP/1.1" 200 1350 > "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.9) > Gecko/20061206 Firefox/1.5.0.9" > > 61.17.42.35 - - [03/Jan/2007:03:48:44 +0000] "GET > /APIServer/authz/list/master%2fAB?apikey=WEB_INTERFACE_API HTTP/1.1" 404 314 > "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.9) > Gecko/20061206 Firefox/1.5.0.9" > > Where the first request returns HTTP/1.1 200 and the 2nd request returns > HTTP/1.1 404. > > error_log doesn't have any entries. > > I tried sending the same request directly to tomcat and both > /APIServer/authz/list/master/AB?apikey=WEB_INTERFACE_API and > /APIServer/authz/list/master%2fAB?apikey=WEB_INTERFACE_API gave the correct > response and the status was HTTP/1.1 200. The second request returns 404 > only when it is passed through mod jk. > > Thanks > Jagadeesh > > > > -----Original Message----- > From: Rainer Jung [mailto:[EMAIL PROTECTED] > Sent: Wednesday, January 03, 2007 2:03 PM > To: Tomcat Users List > Subject: Re: MOD_JK Redirection issues > > Set JkLogLevel to trace and have a look at the JkLogFile. > > Jagadeesh wrote: > >> Thanks for the tip and I will delete the cachelines. >> >> I want jkmod to redirect all the requests to tomcat and it is working fine >> except for the request which has %2f in the url before the parameter part. >> >> For eg: >> >> http://loadbalancer.xxx.com/authenticate%2Fjagadeesh?key=12345678 will not >> be redirected to tomcat servlet container, >> >> however >> >> http://loadbalancer.xxx.com/authenticate/jagadeesh?key=12345678 >> http://loadbalancer.xxx.com/authenticate/jagadeesh%2C/abcd?key=12345678 >> http://loadbalancer.xxx.com/authenticate/jagadeesh?key=12345678&test=%2F >> >> are all getting redirected properly to tomcat. Only those request with %2F >> in the URI before the parameter (?) part is being ignored and they are not >> going past apache (load balancer). >> >> The error_log says >> >> [Sun Dec 31 04:02:03 2006] [notice] Digest: generating secret for digest >> authentication ... >> [Sun Dec 31 04:02:03 2006] [notice] Digest: done >> [Sun Dec 31 04:02:03 2006] [notice] Apache/2.2.2 (Fedora) configured -- >> resuming normal operations >> [Sun Dec 31 14:55:17 2006] [error] [client 212.241.200.196] client sent >> HTTP/1.1 request without hostname (see RFC2616 section 14.23): >> /w00tw00t.at.ISC.SANS.DFind:) >> [Sun Dec 31 21:58:25 2006] [error] [client 87.118.100.232] client sent >> HTTP/1.1 request without hostname (see RFC2616 section 14.23): >> /w00tw00t.at.ISC.SANS.DFind:) >> >> Thanks >> Jugs >> >> -----Original Message----- >> From: Rainer Jung [mailto:[EMAIL PROTECTED] >> Sent: Wednesday, January 03, 2007 1:42 PM >> To: Tomcat Users List >> Subject: Re: MOD_JK Redirection issues >> >> OK, from the config I would guess, that you actually forward the request >> to tomcat, but get the 404 from there. What does the debug log tell you >> about the request in question? >> >> Small hint not related to your problem: delete the cachesize lines if >> you've got no special reason for them. >> >> Jagadeesh wrote: >> >>> Thanks for the reply Rainer. >>> >>> I am using tomcat-connectors-1.2.19 and jBoss 4.0.5GA in Fedora Core 5. >>> Since the binary I downloaded was throwing errors, I build the shared >>> library mod_jk.so from the source and copied it to the >>> /usr/lib/httpd/modules/ directory. >>> >>> Please find below the configuration file (mod-jk.conf) I am using >>> >>> >>> > #========================================================================= > >>> #Loads the module >>> LoadModule jk_module modules/mod_jk.so >>> >>> # The workers file >>> JkWorkersFile conf/worker.properties >>> >>> # Set the jk log level [debug/error/info] >>> JkLogLevel debug >>> >>> # Select the log format >>> JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" >>> >>> # JkOptions indicates to send SSK KEY SIZE >>> JkOptions +ForwardKeySize +ForwardURIEscaped -ForwardDirectories >>> >>> # JkRequestLogFormat >>> JkRequestLogFormat "%w %V %T" >>> >>> # Mount your applications >>> JkMount /* loadbalancer >>> >>> # You can use external file for mount points. >>> # It will be checked for updates each 60 seconds. >>> # The format of the file is: /url=worker >>> # /examples/*=loadbalancer >>> # JkMountFile conf/uriworkermap.properties >>> >>> # Add shared memory. >>> # This directive is present with 1.2.10 and >>> # later versions of mod_jk, and is needed for >>> # for load balancing to work properly >>> JkShmFile logs/jk.shm >>> >>> # Add jkstatus for managing runtime data >>> <Location /jkstatus/> >>> JkMount status >>> Order deny,allow >>> Deny from all >>> Allow from 192.168.0.2 >>> </Location> >>> >>> >>> > #========================================================================= > >>> Please find below worker.properties. >>> >>> >>> >>> > #========================================================================= > >>> # Define list of workers that will be used >>> # for mapping requests >>> worker.list=loadbalancer,status >>> >>> # Define Node1 >>> # modify the host as your host IP or DNS name. >>> worker.node1.port=8009 >>> worker.node1.host=xxx.xxx.xxx.xxx >>> worker.node1.type=ajp13 >>> worker.node1.lbfactor=1 >>> worker.node1.cachesize=10 >>> >>> # Define Node2 >>> # modify the host as your host IP or DNS name. >>> worker.node2.port=8009 >>> worker.node2.host= xxx.xxx.xxx.xxx >>> worker.node2.type=ajp13 >>> worker.node2.lbfactor=1 >>> worker.node2.cachesize=10 >>> >>> # Load-balancing behaviour >>> worker.loadbalancer.type=lb >>> worker.loadbalancer.balance_workers=node1,node2 >>> worker.loadbalancer.sticky_session=1 >>> worker.list=loadbalancer >>> >>> # Status worker for managing load balancer >>> worker.status.type=status >>> >>> #===================================================================== >>> >>> I am not using uriworkermap.properties. >>> >>> Thanks >>> Jagadeesh >>> >>> -----Original Message----- >>> From: Rainer Jung [mailto:[EMAIL PROTECTED] >>> Sent: Wednesday, January 03, 2007 12:51 PM >>> To: Tomcat Users List >>> Subject: Re: MOD_JK Redirection issues >>> >>> Please give detailed information on the version and type of web server >>> and mod_jk you are using and include mod_jk config and the relevant >>> parts of the web server config. >>> >>> You can increase the log level of mod_jk to debug or even trace to >>> follow, how mod_jk tries to match your requests against the configured >>> URL maps. >>> >>> Regards, >>> >>> Rainer >>> >>> Jagadeesh wrote: >>> >>>> Hi All, >>>> >>>> >>>> >>>> Happy New Year!!! >>>> >>>> >>>> >>>> I am having a few problems when using MOD JK with jBoss application >>>> >>> server. >>> >>>> >>>> >>>> I am hosting an application in jBoss which uses REST protocol to serve >>>> >> the >> >>>> contents. So the GET requests that reach MOD JK can be an encoded string >>>> like >>>> >>> http://loadbalancer.xxx.com/authenticate/user%2fjagadeesh?key=123456789 >>> >>>> >>>> >>>> Here the actual request is >>>> >>>> >>>> >>>> http://loadbalancer.xxx.com/authenticate/user/jagadeesh?key=123456789 >>>> >>> where >>> >>>> %2f is the encoded string for '/'. Whenever MOD JK gets a request like >>>> >>> this, >>> >>>> it seems to be ignoring it rather than passing it to the application >>>> >>> server >>> >>>> and I am getting HTTP 404. >>>> >>>> >>>> >>>> I tried accessing the server directly with the request >>>> >>>> >>>> >>>> http://node1.xxx.com/authenticate/user%2fjagadeesh?key=123456789 and >>>> > it's > >>>> working fine. >>>> >>>> >>>> >>>> Any help to resolve this is greatly appreciated. >>>> >>>> >>>> >>>> Thanks >>>> >>>> Jagadeesh >>>> >>> --------------------------------------------------------------------- >>> To start a new topic, e-mail: users@tomcat.apache.org >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >>> --------------------------------------------------------------------- >>> To start a new topic, e-mail: users@tomcat.apache.org >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> --------------------------------------------------------------------- >> To start a new topic, e-mail: users@tomcat.apache.org >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >> --------------------------------------------------------------------- >> To start a new topic, e-mail: users@tomcat.apache.org >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]