Serving JSP pages with Apache httpd and Tomcat
If you want *.jsp files to be served directly from your favorite Apache (2.x) webserver (port 80) rather than from Tomcat's built in webserver at port:8080 follow the instructions below.
I assume you have Apache (2.x) as well as Tomcat installed. Make sure Tomcat works by itself by requesting the samples at http://localhost:8080/examples/jsp.
4 steps involved:
1. Download mod_jk.so from http://tomcat.apache.org/download-connectors.cgi/. There's different versions for different platforms. Download the appropriate one to your Apache/modules dir then make sure to rename it mod_jk.so.
2. Go to the Apache config directory (where httpd.conf is located) and create a file named workers.properties containing the next few lines:
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
3. The above defines a so called worker named worker1 on port 8009 (where Tomcat gets it's forwards). Apache httpd must forward all *.jsp requests to this worker. So let's edit httpd.conf to get that done (edit the file paths to match your configuration).
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile C:/Apache/conf/workers.properties
# Where to put jk shared memory
JkShmFile C:/Apache/logs/mod_jk.shm
# Where to put jk logs
JkLogFile C:/Apache/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# Send all requests to *.jsp to the worker named worker1 (ajp13)
JkMount /*.jsp worker1
4. Restart Apache and there you go. You could copy the examples directory from tomcat/webapps to your Apache webroot to see if everything is OK: you should be able to run the examples at http://localhost/examples/jsp (so without the port 8080 part).
All this and more can be found at http://tomcat.apache.org/connectors-doc/
Running Tomcat alongside Coldfusion (Apache webserver)
When there's a Coldfusion server installed the above needs some more tuning. That's because Coldfusion by default handles all *.jsp requests, so Tomcat won't even know about you requesting jsp pages. Coldfusion (JRun) may be able to handle jsp very well, however if you have a Standard License installed then upon requesting a jsp page CF very kindly informs you that you are trying to access a restricted feature. You must upgrade to Enterprise Edition to enjoy this feature.
That's a cool suggestion perhaps, but we'll stick to Tomcat anyway. All we have to do is tell Coldfusion not to handle jsp requests anymore (or rather: stop telling Coldfusion to handle jsp requests).
2 steps involved:
1. On installation Coldfusion configures Apache to have a whole range of file types to be handled by the CF application server.
Open Apache's httpd.conf then look for Loadmodule jrun_module. Check the lines below. Set JRunConfig Ignoresuffixmap true and remove the '.jsp' file type from Addhandler. Leave the rest as it is.
<IfModule mod_jrun20.c>
...
JRunConfig Ignoresuffixmap true
...
# removed from Addhandler: .jsp
AddHandler jrun-handler .cfm .cfml .cfc
</IfModule>
2. Restart Apache and get yourself a beer.

