前 言:
网络上教您整合IIS和Tomcat的文章比比皆是,但是有太多的都是互相拷贝,按照其操作之后仍然无法成功,笔者也是经过参考数片文章和官方文档之后才试验成功,惊喜和开心之余我将自己的配置经历写了下来,希望能给大家一些真正的帮助。当然,也有可能您看了我的文章之后仍然无法配置成功,欢迎与我联系,我们一起探讨。
作者环境:
Windows 2000 SP4 + IIS 5.0 + JDK 1.4.2(相信IIS6.0也应该能够如法炮制,如果您在Windows 2003上安装出现了问题,请您跟我联系。)
Tomcat安装路径:C:\Tomcat 5.0
Jdk1.4 安装路径:C: \j2sdk1.4.1_02
JAVA_HOME :C: \j2sdk1.4.1_02
CLASSPATH :.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\LIB\DT.JAR;
前期准备:
在整合之前作者已经假定您已经成功的安装好了JDK1.4.2(现在SUN已经发行了JDK5.0,这里我只以JDK1.4.2为例,因为具体使用什么JDK并不影响服务器的配置,JDK的作用是在IIS已经将HTTP请求转发给Tomcat以后才起作用,所以等你完全配置好了您的服务器之后再重新安装更高的JDK也不会有什么大的问题。),并配置好了JAVA_HOME和CLASSPATH环境变量。
正式开始:
1.安装Tomcat5.0
安装模式不用normal,而是选择full(这样会把Tomcat安装成服务模式启动,而且还有tomcat的源代码),然后按照提示进行。我的Tomcat装在C:\Tomcat 5.0下,安装路径您可以自行设置,但如果你修改了安装目录,那我后面介绍到的配置文件的相应目录您也必须一并修改。
2.设置环境变量TOMCAT_HOME
在桌面上“我的电脑”图标上点右键选“属性”->“高级” -> “环境变量” -> “系统变量”-> 新建变量名:TOMCAT_HOME,变量值:C:\Tomcat 5.0,点“确定”保存。
3.拷贝isapi_redirector2.dll
在C:\Tomcat 5.0\conf下新建“jk2”文件夹(这个目录您可以自行设置,但这将影响到后面相关配置文件的参数),然后复制isapi_redirector2.dll到C:\Tomcat 5.0\conf\jk2下面。
4.创建workers2.properties
创建workers2.properties到C:\Tomcat 5.0\conf下,文件内容如下:
[shm]
file= C:/Tomcat 5.0/logs/jk2.log
size=1048576
# Example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
# define the worker
[ajp13: localhost:8009]
channel=channel.socket:localhost:8009
# Uri mapping
[uri:/*.jsp]
worker=ajp13:localhost:8009
# define the worker
[status:status]
# Uri mapping
[uri:/jkstatus/*]
worker=status:status
使用前请将文件的第二行:file= C:/Tomcat 5.0/logs/jk2.log 中的C:/Tomcat 5.0改成您的Tomcat安装路径。
5.创建jk2.properties
创建jk2.properties到C:\Tomcat 5.0\conf下。其内容如下:
## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
## WHEN YOU EDIT THE FILE.
## COMMENTS WILL BE _LOST_
## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.
# Set the desired handler list
# handler.list=apr,request,channelJni
#
# Override the default port for the socketChannel
# channelSocket.port=8019
# Default:
# channelUnix.file=${jkHome}/work/jk2.socket
# Just to check if the the config is working
# shm.file=${jkHome}/work/jk2.shm
# In order to enable jni use any channelJni directive
# channelJni.disabled = 0
# And one of the following directives:
# apr.jniModeSo=/opt/apache2/modules/mod_jk2.so
# If set to inprocess the mod_jk2 will Register natives itself
# This will enable the starting of the Tomcat from mod_jk2
# apr.jniModeSo=inprocess
#request.tomcatAuthentication=true
request.tomcatAuthentication=false
6.创建并导入注册表文件isapi_redirect.2.0.reg
创建并导入注册表文件isapi_redirect.2.0.reg,其内容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector]
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\2.0]
"serverRoot"="C:\\Tomcat 5.0"
"extensionUri"="/jakarta/isapi_redirector2.dll"
"workersFile"="C:\\Tomcat 5.0\\conf\\workers2.properties"
"logLevel"="DEBUG"
导入之前请先修改注册表文件,把serverRoot 和workersFile的“C:\\Tomcat 5.0”替换成您的Tomcat安装路径。
7.设置IIS的ISAPI筛选器
点击开始菜单 -> 设置 -> 控制面板 -> 管理工具 -> Internet 服务管理器,然后找到 你的站点(我的计算机名是BBBear,“默认 Web 站点”)。点右键 -> “属性”->“ISAPI筛选器”->“添加”->筛选器名称:jakarta,可执行文件:C:\Tomcat 5.0\conf\jk2\isapi_redire
ctor2.dll。点“确定”保存。(这里的jk2是第3步使用的文件夹。)
8.配置用于重定向的虚拟目录(非常关键的一步)
在“默认 Web 站点”点右键 -> 新建 -> 虚拟目录 -> 下一步 -> 别名填:jakarta ->下一步->目录选择为:C:\Tomcat 5.0\conf\jk2 -> 下一步 -> “执行(例如ISAPI应用程序或CGI)”一项一定要打上勾 -> 下一步 -> 完成。(一定要注意jakarta的名字不能改变,因为这个名字对应这注册表里jakarta对应,如果名字拼写错误将导致失败。)
重新启动“默认 Web 站点”。然后在“默认 Web 站点”点右键 ->“属性”->“ISAPI筛选器”,如果“jakarta”前面的箭头是绿色的而且优先级为“高”,那么表明配置已经成功了。
如果箭头是红色,那么请您重新检查整个配置过程,看看有没有弄错的地方。如果确认一切正确无误,那就请您重新启动机器,注意一定是重新启动机器而不是重新启动IIS,再重新查看其状态,这样一般可以解决这个问题。如果还不行,请联系我。
10.设置环境变量TOMCAT_HOME
桌面上,“我的电脑”点右键 ->“属性”-> “高级”->“环境变量”->“系统变量”->新建变量名:TOMCAT_HOME, 变量值:C:\Tomcat 5.0 -> 点“确定”保存。
11.拷贝JAVA编译工具包Tools.jar
把C: \j2sdk1.4.1_02\lib目录下的tools.jar复制到Tomcat安装目录下的common\lib的目录下(C:\Tomcat 5.0\common\lib\下)。
12.添加默认文档
开始菜单 -> 设置 -> 控制面板 -> 管理工具 -> Internet 服务管理器 -> 找到你的站点(我的计算机名是BBBear ,“默认 Web 站点”)-> 点右键 -> “属性” -> “文档”->添加->输入“index.jsp”-> 确定 -> 再添加“index.html”-> 确定(因为着这是Tomcat的默认起始页面)-> 。
13.设置网站根路径
“主目录”-> “本地路径”一栏,选择“C:\Tomcat 5.0\webapps\ROOT”。
14.重新启动Tomcat和IIS
重新启动Tomcat 然后再重新启动IIS,此时打开http://localhost/。您看到了什么,对,Tomcat的默认页面。熟悉的“猫”的形象是不是让您感觉到激动呢。嗯,不慌,好戏还在后面呢。其实到看到了Tomcat起始页面您不应该感到惊奇,因为您仔细看看这个页面的后缀您就明白了,“HTML”对,它只是一个静态页面,而且是由IIS解析的。
接着看。(如果您看不到,请您重新启动计算机。)
好的,您现在试着打开http://localhost/jsp-examples看看,现在您应该能看到一个JSP的测试页面,在这里有许多的JSP例程,您随便找一个,然后单击“Execute”,看看结果是什么?如果是正常的返回结果页面,嗯,恭喜您,这代表我们可以开始惊呼了,因为这代表我们前面的努力都得到了回报,IIS已经成功的将JSP页面交给Tomcat来解析。
好的,现在在让我们来看看让IIS转发Servlet,您现在试着打开http://localhost/servlets-
examples,嗯,同样也有一个与JSP测试页面一样的静态页面,现在您也随便找一个Servlet程序然后点击“Execute”看看,如果不出意外,您应该看到正确的返回结果,而不是看到“该页无法显示”的页面。嗯,我现在郑重的宣布,您已经成功完成了Tomcat与IIS的完美结合。恭喜!!
什么?JSP和Servlet都返回“该页无法显示”?嗯,没有关系,我们现在就教您解决这个问题!首先,我们将Tomcat和IIS服务器都停止,然后再启动Tomcat,注意,Tomcat的启动是需要一些时间的,要看Tomcat是否成功启动,您可以查看Tomcat的日志文件:c:\tomcat\logs\stdout.log,如果已经包含“Server startup in 1125 ms”,则证明Tomcat服务已经启动成功。然后再启动IIS,重新尝试上面的JSP和Servlet例子程序,如果仍然不行,那就请在IIS为jsp-examples和servlets-examples两个目录建立与其名字一样的虚拟目录。再试。啊,还不行。那就请您重新启动您的计算机,再试。好了吧!^_^
嗯,这里可能有人要问了,IIS不是号称使用新的ISAPI无须重新启动吗?呵呵,我也明白,但是问题是,如果您重新启动的话,问题真的被解决了。呵呵,如果您知道原因的话,也请告诉我,我将万分感谢!
文章的最后,我想向所有曾经发表过类似文章的朋友们表示感谢!因为我也是在他们已经走过的路上才试验成功的!当然,在网上有很多的文章都是雷同的,甚至有些都没有经过自己测试就胡乱拷贝,我也是在这些“好”文章与“坏”文章以及官方文档上不停的来回摸索和参考才得到您现在看到的结果。而这篇文章也将是我的Blog上的第一篇文章,在此之前,我也像许多朋友一样只享有别人的成果,平常学习的过程中也向许多高手请教,也指导过许多朋友走出迷雾,但是却从来没有想着将这些心得发表出来,让更多的朋友受益。台湾著名作家候捷先生曾经说过:发表是最好的记忆。的确,在写完这篇文章之后,我才真正明白其中的含义。
我的联系方式:
昵称:笨笨熊
QQ:16401731
Email:Netfaery@163.com
Blog:http://blog.csdn.net/netfaery
因为我是第一次使用CSDN的BLOG,在发表完之后,我很有兴致的到GOOGLE上去搜索,偶然发现原来在CSDN已经有一个朋友早就发表过类似的文章,而且还配有插图,原本我也准备配上插图的,但是看来现在没有必要了,大家也可以参考这位仁兄的文章:http://blog.csdn.net/arielxp/archive/2004/06/27/27878.aspx。