Iis – Unable to link IIS8 and Tomcat7 by ISAPI on Windows Server 2012

iisiis-8isapitomcatwindows-server-2012

Firstly, I am completely new to IIS and Windows Server. Previously I used to work only on Apache and Linux.

I want to link IIS8 and Tomcat 7.0.34 under a subdomain, such that when someone visits subdom.mydomain.com then only, IIS forwards requests to tomcat

I consulted these two references:

http://lab.usgin.org/applications/doc/make-tomcat-6x-work-iis7
http://tomcat.apache.org/connectors-doc/reference/iis.html

and did exactly how they have shown. Below are the steps I have done:

  1. Downloaded windows x64 ISAPI binary from http://apache.techartifact.com/mirror//tomcat/tomcat-connectors/jk/binaries/windows/ and placed that isapi_redirect.dll in a directory name isapi created under my tomcat installation directory.

  2. I created a workers.properties file and placed it in tomcat's conf directory

worker.list= tomcatworker1
worker.tomcatworker1.host=localhost
worker.tomcatworker1.port=8009
worker.tomcatworker1.type=ajp13
  1. Then I created a uriworkermap.properties file and placed it in tomcat's conf directory with following content(as I want tomcat's root app to run at the root path of subdomain):
/*=tomcatworker1

Then I created a isapi_redirect.properties file and placed it in isapi directory under my tomcat installation with following content:

# Configuration file for the Jakarta ISAPI Redirector

# The path to the ISAPI Redirector Extension, relative to the website
# This must be in a virtual directory with execute privileges
extension_uri=\tomcat\isapi_redirect.dll

# Full path to the log file for the ISAPI Redirector
log_file=C:\Program Files\Apache Software Foundation\Tomcat 7.0_Tomcat7_ins1\logs\isapi_redirect.log

# Log level (debug, info, warn, error or trace)
log_level=info

# Full path to the workers.properties file
worker_file=C:\Program Files\Apache Software Foundation\Tomcat 7.0_Tomcat7_ins1\conf\workers.properties

# Full path to the uriworkermap.properties file
worker_mount_file=C:\Program Files\Apache Software Foundation\Tomcat 7.0_Tomcat7_ins1\conf\uriworkermap.properties

In IIS Manager, in main server node and selected ISAPI and CGI Restrictions feature. Opened it and add a new restriction with the following information:

ISAPI or CGI path = {My Tomcat Directory Path}\isapi\isapi_redirect.dll
Description = Tomcat
Select "Allow extension path to execute"

Created a new site with binding subdom.mydomain.com and in it added a new virtual directory with the following properties:

Alias = tomcat
Physical path = {my Tomcat root directory}\isapi 

Next, ISAPI Filters feature under my new web site's node. Create a new filter with this information:

Filter name = tomcat
Executable = {my Tomcat root directory}\isapi\isapi_redirect.dll

At last, made sure that the ISAPI handler is enabled.

After doing all these things, when I accessed my subdomain, I came up with a run time error, which I don't know how to resolve. check out error at this link http://backops.cmee.in/

Best Answer

I never had much success configuring it unless the virtual directory used the name jakarta and nothing else. The conf and logs directories needed to be subdirectories of the ISAPI installation directory.

If you created those .properties files using a right-click and New Text Document, that Windows didn't add a .txt extension to them.

Finally, use 127.0.0.1 instead of localhost in your workers.properties. I don't know why but it doesn't work using localhost on Windows 2012.