速动画教程第二十一集 IIS 集成 Tomcat
				
		
		
				
						
								 
						
				
		
		
				
						下载地址: http://this.oksonic.cn
制作环境:
				
		
		
				
						
								  
						
				
				Windows 2003 + IIS6、jre1.5.0_06、apache-tomcat-5.5.17
		
		
				
						
								 
						
				
		
		
				
						首先需要做以下准备工作
				
		
		
				
						
								  
						
				
				1、安装好 Tomcat 和 IIS6 ,并且都能正常运行
		
		
				
						  2、Tomcat的端口没做任何修改
		
		
				
						  3、下载好 集成需要的 isapi_redirector2.dll 文件
		
		
				
						    
						http://archive.apache.org/dist/tomcat/tomcat-connectors/jk2/binaries/win32/jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip  
						
						
				
		
		
				
						 
				
		
		
				集成步骤
		
		
				
						  1、配置环境变量
				 JAVA_HOME 
				和
				 TOMCAT_HOME
				
						
						
				
		
		
				
						  2、将 isapi_redirector2.dll 文件拷贝到 TOMCAT_HOME 中的任意一个目录中,如:TOMCAT_HOME/iis 此目录需要新建
		
		
				
						  3、新建一个目录存放站点,如:d:\web 并在其中新建一个 ROOT 目录,此目录作为站点的默认起始目录
		
		
				
						  4、打开 IIS 控制台,新建一个站点,如果自己有域名的话可以在主机头中输入自己的域名,
		
		
				
						     如:
				www.oksonic.cn 
				这样就不会和原来的默认网站冲突了,现在需要将默认网关停止后再新建
		
		
				
						  5、新建一个虚拟目录,名称为:jakarta 这个名称不能改变,路径为 
				TOMCAT_HOME/iis
				,也就是放 
				dll 
				文件的
				目录
		
		
				
						     打开站点属性窗口,进入
				ISAPI
				筛选器,点击添加铵钮,在筛选器名称中输入
				jakarta
				,这个名字也不能修改,所以要注意是否正确,
		
		
				
						     在可执行文件中选择 
				TOMCAT_HOME/iis/isapi_redirector2.dll 
				文件
		
		
				
						     进入主目录选项卡,在弹出窗口中选择添加,这里对 
				jsp 
				文件和 
				struts 
				的 
				do 
				访问方式进行映射配置,点击添加铵钮,
		
		
				
						     可执行文件选择  
				TOMCAT_HOME/iis/isapi_redirector2.dll 
				,扩展名为 
				jsp 
				,同样对 
				do 
				也进行配置
		
		
				
						  6、新增一个 Web 服务扩展,扩展名随意填,如:
				Tomcat
				,要求的文件选择
				 TOMCAT_HOME/iis/isapi_redirector2.dll 
				,
		
		
				
						     选中设置扩展状态为充许项,然后确定
				
						
						
				
		
		
				
						  7、拷贝
				 jk2.properties
				、
				workers2.properties 
				两个文件到 
				TOMCAT_HOME/conf 
				目录中
		
		
				
						 
				
		
		
				jk2.properties 文件内容如下:
		
		
				request.tomcatAuthentication=false
				
						
						
				
		
		
				
						 
						
						
				
		
		
				workers2.properties 文件内容如下:(
				以下第二行的文件路径需要根据自己的配置进行修改
				)
		
		
				[shm]
		
		
				file= 
				d:/Tomcat/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]
		
		
				[uri:/do/*]
		
		
				worker=ajp13:localhost:8009
		
		
				
						 
						
						
				
		
		
				# define the worker
		
		
				[status:status]
		
		
				
						 
						
						
				
		
		
				# Uri mapping
		
		
				[uri:/jkstatus/*]
		
		
				worker=status:status
		
		
				
						 
						
						
				
		
		
				注意 # Uri mapping 部份,现在已经开通了对jsp文件和struts的两种访问方式,如果还有其它的文件访问需要转到Tomcat来处理的话都在此进行配置
		
		
				
						 
				
		
		
				
						  8、现打开注册表文件,
				修改绿色字体部份,注意路径表示符
		
		
				文件内容如下:
		
		
				Windows Registry Editor Version 5.00
		
		
				
						 
				
		
		
				[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\2.0]
		
		
				"serverRoot"="
				D:\\Tomcat
				"
		
		
				"extensionUri"="/jakarta/isapi_redirector2.dll"
		
		
				"workersFile"="
				D:\\Tomcat\\conf\\workers2.properties
				"
		
		
				"logLevel"="DEBUG"
		
		
				
						 
				
		
		
				
						    修改完成后将导入注册表(双击此文件)
		
		
				
						 
				
		
		
				
						  9、修改 
				tomcat 
				的配置文件 
				server.xml
		
		
				
						 
				
		
		
				
						    
				
				使用以下内容替换原来的
				 <host>...</host> 
				内容,
				绿色字体为需要修改的内容
		
		
				
						 
				
		
		
				<Host name="
				localhost
				" debug="0" appBase="
				d:\web
				" unpackWARs="true" autoDeploy="true">
		
		
				
						  
						      <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="
				oksonic_log.
				" suffix=".txt" timestamp="true"/>
		
		
				
						  
						      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  prefix="
				oksonic_access_log.
				" suffix=".txt" pattern="common" resolveHosts="false"/>
		
		
				
						    </Host>
				
						
						
				
		
		
				
						 
				
		
		
				
						  拷贝 Tomcat_Home/webapps/ROOT 下的文件到 web/ROOT 中
		
		
				
						 
				
		
		
				重启IIS和Tomcat服务
		
		
				
						   
				
				打开浏览器输入
				 http://localhost/index.jsp 
				进行测试,正常的话可以显示 
				Tomcat 
				默认的首页
		
		
				
						   这时再进入到 
				IIS 
				的管理工具中查看ISAPI筛选器,这时应该显示一个绿色向上的箭头,如果没有绿色箭头的话应该是有一个红色的向下的箭头,这表明是配置有问题,请检查,如果一个箭头也没有的话应该是没有使用浏览进行测试,只要有一遍测试的话就应该有箭头了
		
		
				
						   这里配置完成后有一个问题,就是无法使用 http://localhost 直接打开 index.jsp ,
		
		
				
						   即使是配置了IIS6的默认首页也不行,我采用的方法是使用一个 
				index.htm 
				文件来进行跳转,文件内容如下:
		
		
				<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
		
		
				"http://www.w3.org/TR/html4/loose.dtd";>
		
		
				<html>
		
		
				<head>
		
		
				<meta http-equiv="refresh" content="0; url=/index.jsp">
		
		
				</head>
		
		
				
						 
						
						
				
		
		
				<body>
		
		
				
						 
						
						
				
		
		
				</body>
		
		
				</html>
		
		
				
						 
						
						
				
		
		
				整个配置基本完成,现在需要解决乱码的问题,如果有遇到乱码问题的话
		
		
				
						 
						
						
				
		
		
				这里使用的全是 
				UTF-8
		
		
				
						 
						
						
				
		
		
				在项目中要使用 
				UTF-8 
				的编码,并配置了过滤器,过滤编码也是 
				UTF-8
				
						
						
				
		
		
				
						 
						
						
				
		
		
				修改 
				Tomcat 
				的配置文件 
				server.xml 
				,在端器配置的地方加入 
				URIEncoding="UTF-8"
		
		
				如: 
		
		
				<Connector 
				URIEncoding="UTF-8"
				
						
						
				
		
		
				port="8080"               maxHttpHeaderSize="8192"
		
		
				
						               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
		
		
				
						               enableLookups="false" redirectPort="8443" acceptCount="100"
		
		
				
						               connectionTimeout="20000" disableUploadTimeout="true" />
		
		
				
						 
						
						
				
		
		
				
						 
						
						
				
		
		
				这里是Tomcat使用的编码,还要配置集成时使用的编码,因为集成时使用的端口为 8009 所以在配置8009端口的地方也要加入  URIEncoding="UTF-8"
		
		
				如:
		
		
				<Connector 
				URIEncoding="UTF-8"
		
		
				port="8009" 
		
		
				
						               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
		
		
				
						 
						
						
				
		
		
				好了,重启 
				IIS 
				服务和 
				Tomcat 
				服务,整个集成工作就完成了
		
		
				
						 
				
		
		
				在这里我无法对乱码问题进行测试,这是我在开发时所发现并已经解决的方法,希望对大家有用。