IIS 6.0 Won't Serve JSP Pages Through Tomcat 6/ISAPI_Redirect

Posted on 2007-10-03
Last Modified: 2013-12-02
I have a Windows Server 2003 box running IIS 6.0 and Apache Tomcat 6.  We are running a web application written in Java called JIRA through Tomcat 6 and Java 1.6.  JIRA works great through Tomcat when you serve it over port 8080; however, we want to serve the pages through IIS and have it pass the processing of the Java side of things through to Tomcat.

I have followed the instructions at JIRA's site ( and also the ones on Tomcat's site ( for configuring isapi_redirect.dll to allow IIS to integrate with Tomcat.

I have "isapi_redirect.dll" setup in IIS 6.0 as an enabled Web Service Extension and also have it setup on "Default Web Site" as an ISAPI filter.  My "isapi_redirect.log" file is empty (it is the log file specified in the "" file).  My IIS logfile from "C:\WINDOWS\system32\LogFiles\W3SVC1" shows 500 errors:

2007-10-02 20:23:09 W3SVC1 GET / - 80 - Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+.NET+CLR+1.1.4322) 500 0 1
2007-10-02 20:23:12 W3SVC1 GET /jira - 80 - Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+.NET+CLR+1.1.4322) 500 0 1

and my web page being served by IE has the title of "Error" and the page simply says "Incorrect function."

I get this error rather the Tomcat service is running or not.  I don't know if this is a permissions problem on the /jakarta/ virtual directory or the physical directory that has the "isapi_redirect.dll" file in it.  I am clueless at this point and decided to turn to another source for help on this.  I'm not sure what else I may need to post here to help troubleshoot this.  One of the troubleshooting things I found was to run "tasklist /M isapi_redirect.dll" and it should return "w3wp.exe" which it now does (but did not this morning).  I also do not believe this is a JIRA specific error which is why I am posting here first rather than JIRA's support site.
Question by:CincinanstyKid

    Author Comment

    Here is some extra information:

    Tomcat is installed in C:\Program Files\Apache Software Foundation\Tomcat 6.0\ and the Tomcat ISAPI_Redirector is installed in C:\Program Files\Apache Software Foundation\Tomcat 6.0\jkredirect\

    C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\server.xml contains this line:
    <Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

    C:\Program Files\Apache Software Foundation\Tomcat 6.0\jkredirect\ contains this:
    log_file="C:\Program Files\Apache Software Foundation\Tomcat 6.0\jkredirect\logs\isapi_redirect.log"
    worker_file="C:\Program Files\Apache Software Foundation\Tomcat 6.0\jkredirect\conf\"
    worker_mount_file="C:\Program Files\Apache Software Foundation\Tomcat 6.0\jkredirect\conf\"

    C:\Program Files\Apache Software Foundation\Tomcat 6.0\jkredirect\conf\

    C:\Program Files\Apache Software Foundation\Tomcat 6.0\jkredirect\conf\

    C:\Program Files\Apache Software Foundation\Tomcat 6.0\jkredirect\logs\isapi_redirect.log was manually created by me but is still 0 bytes in size.
    LVL 1

    Accepted Solution

    I had the same issue, which I just fixed.  In my case, my isapi_redirect.dll was the latest version but there were deprecated directives loaded within my file.  I changed them to utilize current worker directives, and the Incorrect Function message went away.

    In your case, it could also be due to the spaces in the path name.  Try moving your,, and isapi_redirect into a directory like "c:\jkconnector"

    Finally, and this could be way off and I've no real experience yet with tomcat 6, but the directives that you are loading within should actually be stored in the registry.  The tomcat connector, IIS how-to document details what keys and values should be stored there.  (URL is:  The one item missing from this particular document is that you need to create a 'jakarta' web service extension allowing access to the isapi_redirect application extension.

    Featured Post

    How to improve team productivity

    Quip adds documents, spreadsheets, and tasklists to your Slack experience
    - Elevate ideas to Quip docs
    - Share Quip docs in Slack
    - Get notified of changes to your docs
    - Available on iOS/Android/Desktop/Web
    - Online/Offline

    Join & Write a Comment

    Verbose logging is used to diagnose garbage collector problems. By default, -verbose:gc output is written to either native_stderr.log or native_stdout.log.   It is also possible to redirect the logs to a user-specified file. This article will de…
    Lync server 2013 Backup Service Error ID 4049 – After File Share Migration
    how to add IIS SMTP to handle application/Scanner relays into office 365.
    In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor ( If you're interested in additional methods for monitoring bandwidt…

    746 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    16 Experts available now in Live!

    Get 1:1 Help Now