ARR with Tomcat
Recently I have seen forum posts regarding how to set up Tomcat 6 as Java Servlet/JSP container with IIS 7 as a web server. When I read trough the doc, it requires quite cumbersome steps required to configure.
The basic idea is that we want to use IIS 7 as a native web server in front end and put Tomcat as application server to handle Servlet and JSP request in back end. The Servlet/JSP needs to run in JVM, which is not directly executable in native web server address apace. Other non-Java based web server is pretty much the same story. Ex) apache jk mod.
We need a mediator who can determine whether the request is for Servlet/JSP, and route it to the application server, and send back to the client. In other words, the front end web server 1) receives a client request, and 2) forwards Servlet/JSP request to Tomcat which generates content, and finally 3) delivers the response back to a client. The classic solution is JK Connector which uses ISAPI filter and configures through .properies.
IIS 7 offers a better solution; Application Request Routing (ARR).
At your application server:
Install the Tomcat 6 and JRE 6 on the application server.
Install ARR and do basic configuration.
The basic configuration is as simple as adding Tomcat server into server farm. The rest is taken care of by ARR and URL Rewrite. Note that the default port is 8080 when installs Tomcat server, so you need to expalnd "Advanced Settings" and set the correct port when adds server.
Comparing with JK Connector solution, it is pretty simple and neat configuration to make it work. You do not need ISAPI filter (Isapi_redirect.dll) and .properties files (isapi_redirect.properties, workers.properties, uriworkermap.properties). And, the combination of ARR and URL Rewrite provides much more powerful solution.