tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pete Helgren <>
Subject Re: AJP13 Connector and JKOptions
Date Thu, 19 Feb 2009 19:46:14 GMT

Thanks I'll that that to heart and dig deeper into the application 
structure itself when I get the opportunity.

I use Freemarker (and a smaller framework called niggle) as my servlet 
template engine and the only other thing I reference is a resource base 
in the servlet context like this:


Perhaps niggle is doing the context magic for me but I haven't run into 
this issue in other deployments, just this one.  And, as you indicate, 
it could be dumb luck (wouldn't be the first time!)

I appreciate the help and the good counsel and I'll try on a couple of 
things for size this evening and let you know how things turn out in the 


Christopher Schultz wrote:
> Hash: SHA1
> Pete,
> On 2/19/2009 12:31 PM, Pete Helgren wrote:
>> My servlet uses templates that are relative to the webapps/<context>
>> folder.  I don't tell the template anything more than this:
>>    <td valign="top" class="body12"><img src="images/bg_hdr_logo.gif"
>> width="254" height="115" border="0"></td>
> You should be telling it something like this (shown in JSP-speak)
> <img src="<%= request.getContextPath() %><%=
> response.encodeURL("/images/bg_hdr_logo.gif") %>" ...
> Note:
> 1. The use of request.getContextPath
> 2. The use of response.encodeURL to add ";jsessionid=..." if necessary
> 3. The leading / on your image's URL
> This technique will always work, which is why you should always use it.
>> The images are in the webapps/<context>/images folder and the  templates
>> are in the webapps/<context>/templates folder.  Is seems to me that if I
>> change it to pre-append an /ASAAP in front of all of my image
>> references, it will break the application.
> You're right, because blindly appending /ASAAP to all your URLs means
> that you can't easily rename the context (or put it in ROOT). Using the
> dynamic technique above will make it work no matter where you put it.
>> Since this servlet deploys correctly in another Apache/Tomcat
>> environment I can only assume it is a configuration issue, not a problem
>> with the application itself.
> Successful deployment does not guarantee that the application isn't broken.
>> There was a suggestion to use /* for the JKMount entry but that seems
>> like all web requests would be routed to the servlet with that directive
>> and therefore the PHP and other web applications served by Apache would
>> fail.
> You want to map this:
> JkMount /contextName/* worker
> ... if you just want to be done with it. If you want to use Apache for
> static content, you'll have to be more gentle with your mappings. Say,
> something like this:
> JkMount /contextName/*.jsp worker
> JkMount /contextName/*/j_security_check worker
> JkMount /contextName/*.do worker
> JkMount /contextName/*.action worker
> JkMount /contextName/*.whatever worker
>> I will keep your recommendation in mind but I think I'll rather change
>> the configuration to one that works rather than have to change the
>> application itself.
> This problem is likely to plague you wherever you go unless you fix this
> problem. If it's working when deployed to a context /other/ than ROOT,
> then don't deploy it to ROOT.
> The real problem is that you can't alias / to more than one thing at a
> time. Since /images (to httpd) points to your DocumentRoot (not your
> webapp's root), it can't find your stuff. The reason it works when you
> deploy your application to a non-ROOT context is because your JkMount
> setup forwards /all/ requests to Tomcat for /contextName, and Tomcat
> knows where the webapp's root is.
> This is not a configuration problem. This is a misunderstanding of the
> relationship between httpd and Tomcat, and an oversight in the way you
> (don't) dynamically generate resource URIs in your web application.
> - -chris
> Version: GnuPG v1.4.9 (MingW32)
> Comment: Using GnuPG with Mozilla -
> iEYEARECAAYFAkmdrMgACgkQ9CaO5/Lv0PA6KwCfRw0KTyUhLd9uxiNF9bBMpt6z
> W4IAnA0/EO+uT2+DLrm69/6E5Z+vylF6
> =wQli
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message