I am trying to direct files with .jsp extensions to tomcat. Otherwise I want apache to serve the file directly (no tomcat). Currently I have a test.jsp which is supposed to create an HTML page with the current date in the body. Instead when I go to that .jsp I see the JK Status Manager. The mod_jk.logs only show, init_jk::mod_jk.c (3365): mod_jk/1.2.35 initialized.

I have tomcat and apache setup on my server. Apache runs on 80 and tomcat runs on 8080. localhost:8080 show the tomcat welcome page. I downloaded tomcat-connectors-1.2.35-windows-i386-httpd-2.2.x and copied the mod_jk.so to C:\apache\modules.

Then I added LoadModule jk_module modules/mod_jk.so to my httpd.conf. I restart apache and the module loads just fine.

Next I downloaded the mod_jk source to get the workers.properties file. I copy workers.properties to C:\apache\confg. Then I added this user,

workers.tomcat_home="C:/Program Files/Apache Software Foundation/Tomcat 7.0"
workers.java_home="C:/Program Files/Java/jdk1.7.0_03"


When I try to use the ajp13 user in my httpd.conf I get the following error in my mod_jk.log,

[Wed Mar 28 13:08:51 2012] [2196:4100] [info] ajp_connection_tcp_get_message::jk_ajp_common.c (1258): (ajp13) can't receive the response header message from tomcat, network problems or tomcat ( is down (errno=60)
[Wed Mar 28 13:08:51 2012] [2196:4100] [error] ajp_get_reply::jk_ajp_common.c (2117): (ajp13) Tomcat is down or refused connection. No response has been sent to the client (yet)
[Wed Mar 28 13:08:51 2012] [2196:4100] [info] ajp_service::jk_ajp_common.c (2614): (ajp13) sending request to tomcat failed (recoverable),  (attempt=1)

Next I update my httpd.conf with,

JkWorkersFile C:/apache/conf/workers.properties
JkLogFile C:/apache/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

Also I added JkMount /*.jsp jk-status to my virtual host like this,

   JkMount /*.jsp jk-status
   #JkMount /*.jsp ajp13
   ServerName bgsisson.com
   ServerAlias www.bgsisson.com
   DocumentRoot C:/www/resume

I think i need to include a uriworkermap.properties file, but this is where I am getting stuck.

I have put up a test .jsp at bgsisson.com/test.jsp It shows the JK Status Manager when I use JkMount /*.jsp jk-status and 502 Bad Gateway when I use JkMount /*.jsp ajp13


<%-- use the 'taglib' directive to make the JSTL 1.0 core tags available; use the uri
"http://java.sun.com/jsp/jstl/core" for JSTL 1.1 --%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

<%-- use the 'jsp:useBean' standard action to create the Date object;  the object is set
as an attribute in page scope
<jsp:useBean id="date" class="java.util.Date" />

<head><title>First JSP</title></head>
<h2>Here is today's date</h2>

<c:out value="${date}" />

  • Sorry, but it's still not clear what exactly you're asking. You want to know the next step? You're encountering an error? Specific error at startup? Can you provide the log section with error? IMHO, mod_proxy_ajp is much easier to configure and work with than mod_jk. – Jason Huntley Mar 28 '12 at 19:38
  • @JasonHuntley Sorry it's not clear. I'll update the first part of my question to explain that better. Part of the reason I want to use mod_proxy is to learn all its complexities – sissonb Mar 28 '12 at 19:49

You are pretty close on your config, there are just a few things that are off.

First, AJP does not run over port 8080, by default it runs over port 8009. It's a different connector. You can verify which port AJP is setup for by looking at your server.xml file for a line that looks like this:

<Connector port="8009" redirectPort="8443" protocol="AJP/1.3"/>

So you'll want to change your worker.ajp13.port=8080 directive to worker.ajp13.port=8009

Secondly, your httpd.conf is a bit off:

JkAutoAlias <path_to_tomcat>/webapps
JkMount /<your_webapp>/*.jsp ajp13

The Tomcat connector docs explain JKAutoAlias very well:

Automatically Alias webapp context directories into the Apache document space. Care should be taken to ensure that only static content is served via httpd as a result of using this directive. Any static content served by httpd will bypass any security constraints defined in the application's web.xml. For inheritance rules, see: JkMountCopy. There is no default value.

  • ah great! didn't look at the server.xml before. thanks for the info. getting a 404 now, but I'll figure that out in a sec. – sissonb Mar 28 '12 at 22:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.