win2000/2003下整合IIS+Tomcat5支持jsp
windows2003 + IIS6 + Tomcat5.配置
2000和2003下整合IIS+TOMCAT详细的配置如下:
1、安装JDK,(我安装在 D:\java)设置环境变量[CLASSPATH、JAVA_HOME、Path](根据自己的JDK安装路径设置)
“我的电脑”->点右键->“属性”->“高级”->“环境变量”->“系统变量”->新建->变量名:
CLASSPATH=.;D:\java\jdk\lib\tools.jar;D:\java\jdk\lib\dt.jar
JAVA_HOME=D:\java\jdk
path=.;D:\Java\jdk\bin;
测试:在DOS下输入javac回车,出现javavc的使用说明表示你的JDK安装成功
在DOS下输入java回车,出现java的使用说明表示你的环境变量设置成功
2、安装Tomcat,(我安装在 D:\Tomct5,安装的HTTP端口是8080,HTTP端口安装完成后可以在server.xml中修改)设置环境变量TOMCAT_HOME(根据自己的Tomcat安装路径设置)
TOMCAT_HOME=D:\Tomct5
测试:启动tomcat,在IE中输入http://localhost:8080出现tomcat的欢迎界面,安装成功!
3、在IIS中把JSP相关的请求发送到Tomcat需要Tomcat Connector的支持,去apache网站下载JK2,JK2负责IIS和Tomcat的通讯,下载地址:
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk2/binaries/win32/
下载:jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip
解压后找到bin目录中的isapi_redirector2.dll文件,我把它放在了D:\Tomcat5\iis下(目录随便)。
4、创建workers2.properties文件
在Tomcat安装目录下的conf目录下建一个workers2.properties文件,把下面这段内容拷进去保存,
实际运用时把所有的localhost和8009换成你自己的IP和端口:
[shm]
file=D:/Tomcat5/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]
[uri:/*.do]
worker=ajp13:localhost:8009
# define the worker
[status:status]
# Uri mapping
[uri:/jkstatus/*]
worker=status:status
使用前请先修改文件的file=D:/Tomcat5/logs/jk2.log这一行,改成你需要的路径,copy地址栏的路径时请注意,是"/"而不是“\”,跟windows表示的路径不一样。在 # Uri mapping 处设置你需要tomcat操作的内容。
5、编辑Tomcat安装目录下的conf目录中的jk2.properties文件(如果没有新建一个)
添加如下内容:
request.tomcatAuthentication=false
6、编辑注册表
新建一个iis.reg文件,把下面这段内容拷进去保存然后双击iis.reg把信息导入注册表。
(注意,把涉及的Tomcat路径改成你的Tomcat的路径)
iis.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"="D:\\Tomcat5"
"extensionUri"="/jakarta/isapi_redirector2.dll"
"workersFile"="D:\\Tomcat5\\conf\\workers2.properties"
"logLevel"="DEBUG"
7、添加“ISAPI筛选器(以便Connector能截取到URL请求)
打开“开始菜单->设置->控制面板->管理工具->Internet 服务管理器"在里面选择“网站”中的默认网站(默认网站我的指向D:\Tomcat5\webapps) (注:2000系统为 “开始菜单->设置->控制面板->管理工具->Internet 服务管理器在里面选择默认Web站点"),在其上点右键选“属性”,在弹出的页框里选择“ISAPI筛选器”,点“添加”,筛选器名称填jakarta,可执行文件中填入你的isapi_redirector2.dll的绝对路径(就是第3部中isapi_redirector2.dll文件存放的位置,我的是D:\Tomcat5\iis\isapi_redirector2.dll)。“确定”后点“确定”关闭属性页。
8、新建虚拟目录
在Internet信息服务管理器中,在里面选择“网站”中的默认网站,点右键,选择“新建”->“虚拟目录”,别名填jakarta,下一步,路径选为你的isapi_redirector2.dll存放的目录,我的是D:\Tomcat5\iis,下一步,权限中记得把 "执行(例如ISAPI应用程序或CGI)"一项打上勾,再点下一步,再点“完成”。
如果你用的是IIS5的话,到这里就可以结束了,但IIS6还没完(稍候介绍)。
9、重新启动“默认 Web 站点”。然后在“默认 Web 站点”点右键->“属性”->“ISAPI筛选器”,如果"jakarta"前面的箭头是绿色的,那么表明配置已经成功了。如果箭头是红色,那么请你检查整个配置过程,看看有没有弄错的地方。
10、IIS6需添加此步骤,(如果是IIS5跳过) 在“Internet信息服务管理器”的“网站”中的“Web服务扩展”上点右键选择“添加一个新的Web服务扩展”,弹出的框中扩展名填jsp(这里的名称无所谓,随便取一个),“要求的文件”选“添加”然后找到你的isapi_redirector2.dll后“确定”。“设置扩展状态为允许”也打上勾,确定。
至此,Connector就可以对请求进行过滤,把符合配置文件中的请求重写到extension_uri指定的uri进行处理,这里为/jakarta/isapi_redirect2.dll,然后isapi_redirect2.dll再转发到tomcat的8009由tomcat处理完成后再循原路发回去.
11、新建测试文件 在tomcat安装目录中的weapps中新建一个test目录,里面新建一个test.jsp文件和相应的WEB-INF目录和web.xml文件。
12、重启电脑
13、启动Tomcat,再启动IIS 打开IE,输入http://localhost:8080/test/test.jsp
然后再看看http://localhost/test/test.jsp,如果两者执行结果一样,恭喜你,整合成功了!
注:
1.如果在输入http://localhost/test/test.jsp显示tomcat的错误信息,看一下你的tomcat安装目录中的common\lib目录下有没有tools.jar文件,如果没有就去把JDK安装目录中的lib目录下的tools.jar拷贝进来。
2. IIS指向的目录最好和Tomcat指向的目录一致,不然会发生找不到图像和其他资源文件的问题。
3.你需要tomcat处理的文件和目录可以在workers2.properties(见第4步)中的# Uri mapping与worker=ajp13:localhost:8009之间设置,如:[uri:/*.jsp],[uri:/*.do],每次修改workers2.properties后需要重启IIS才能生效。
4.英文文档中还提到应该把IIS6设置为IIS5隔离模式,“Internet信息服务管理器”->“网站”->“属性”->“服务”,把“以IIS5.0隔离模式运行WWW服务”打上勾。这个也可以不选择,如果你配置不成功就把这个勾上。
5.如果上述方法都试过了还无法成功整合的话,可以尝试如下操作:虚拟目录-à属性à虚拟目录选项à配置 添加一个应用程序扩展,扩展名为 .jsp 可执行文件为isapi_redirector2.dll 的绝对路径,同样添加 .do 对应isapi_redirector2.dll 的应用程序扩展。
6. tomcat 默认端口是8080,从步骤4可以知道,JK2使IIS能够把所有的jsp 请求发送到tomcat ,让tomcat 的8009端口来处理请求,所以不用把tomcat 的默认端口改成8009,这样的话会存在冲突,导致整合无法成功。
http://localhost:8080/test/test.jsp
然后再看看http://localhost/test/test.jsp,如果两者执行结果一样,恭喜你,整合成功了!