Windwos2003 X64系统IIS6.0整合Tomcat6.0

说明:此文章为网上转载+结合我使用过程中遇到的问题;记录一下。
平台: windows2003(x64 R2 SP2标准版) + IIS6.0 + TOMCAT6.0 + J2SE1.6.0

首先服务器(windows2003)已经上已经安装 IIS6 环境,Tomcat 6 环境,配置此类环境的教程很多,恕不多说,自己网上找。

一、下载一个整合需要的文件isapi_redirect.dll
下载地址http://apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32 (在我的系统中32位版本配置未能成功,后更换为64版本的,后面有说明)
在此我下载的是jk-1.2.31版本,以前有个人写了个教程下载的是jk-1.2.31里的,我看了一下,现在jk-1.2.31提供的是nsapi_redirect.dll 我试验了一下isapi版不适合使用,配置不成功。所以我建议下载jk-1.2.31版的,然后我们将得到isapi_redirect.dll(228k,jk-1.2.23版),当然你根据你的版本自己去试验一下也未尝不可,然后将isapi_redirect.dll拷贝到tomcat安装目录下的 conf 文件夹里。

建立一个注册表文件 isapi_redirect.reg ,输入内容(将c:\\tomcat更换成你自己的tomcat安装目录):

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0] 
"log_file"="C:\\tomcat6\\logs\\isapi.log" 
"log_level"="debug" 
"worker_file"="C:\\tomcat6\\conf\\workers.properties" 
"worker_mount_file"="C:\\tomcat6\\conf\\uriworkermap.properties" 
"extension_uri"="/jakarta/isapi_redirect.dll" 


双击isapi_redirect.reg文件导入系统.


二、在tomcat安装目录下的 conf 文件夹里建立如下文件

1.Tomcat6的conf下安装时候已经自动建立workers.properties,如果没建立,则手动建立文件workers.properties
workers.properties内容如下(请更成换你自己的Tomcat和J2SE(jdk)目录:

workers.tomcat_home=c:\Tomcat6\ 
workers.java_home=c:\J2SE15 
ps=\ 
worker.list=ajp13 
worker.ajp13.port=8009 
worker.ajp13.host=localhost 
worker.ajp13.type=ajp13 
worker.ajp13.lbfactor=1
 

2.建立文件uriworkermap.properties
uriworkermap.properties内容如下:

/*.jsp=ajp13

三、打开HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0项,检查右边项目中是否包含如下项:

extension_uri /jakarta/isapi_redirect.dll (jakarta为IIS下的虚拟目录)
log_file c:\tomcat6\logs\isapi.log (指定JK插件使用的日志文件)
log_level debug (指定日志级别)
worker_file c:\tomcat6\conf\workers.properties (指定JK插件的工作文件)
worker_mount_file c:\tomat6\conf\uriworkermap.properties (指定JK插件的URL映射)

如果没有上述项,则建立相关项和相关值


四、打开“我的电脑->控制面板->管理工具->Internet信息服务管理器”,在里面选择“网站”中的某个网站(此网站就是我们需要使用JSP环境的站,并且在此将目录设置与Tomcat下的此网站目录设置为一致),在其上点右键选“属性”,在弹出的页框里选择“ISAPI筛选器”,点“添加”,筛选器名称填jakarta,可执行文件中填入你的isapi_redirector.dll的绝对路径(我的是C:\Tomcat6\conf)。“确定”后点“确定”关闭属性页。再在“此网站”上右键,选择“新建”->“虚拟目录”,别名填jakarta,下一步,路径选为你的isapi_redirector.dll存放的目录(我的是C:\Tomcat6\conf),下一步,权限中记得把“执行”那项打勾,好了,完成。


五、 在“Internet信息服务管理器”的“网站”中的“Web服务扩展”上点右键选择“添加一个新的Web服务扩展”,弹出的框中扩展名填JSP(无所谓的,自己随便设置名称),“要求的文件”选“添加”然后找到你的isapi_redirector.dll后“确定”。“设置扩展状态为允许”也打上勾,确定。


六、配置完毕。重启IIS6和Tomcat6。("我的电脑" - 右键 - 管理 - 服务和应用程序 - 服务 ,重新启动Tomcat6,重新启动IIS6.)


七、测试网站,在网站目录下建立一个test.jsp文件。键入 http://localhost:8080/test.jsp 看看!然后再看看 http://localhost/test.jsp ,如果两者执行结果一样,恭喜你,整合成功了!

如果未整合成功,检查如下:

1.你的“Internet信息服务管理器”->“网站”->“默认网站”->“属性”->“ISAPI筛选器”中的jakarta是否是向上的绿色箭头?如果是红色的,检查一下你之前做的配置有没有少了或是写错了点什么,再重新配置一遍。
2.检查配置的Tomcat和JDK和isapi_redirect.dll的配置路径是否正确,包括写在注册表中的路径,IIS中配置的插件路径等,如果任何一处错误,都将配置不成功!
3.IIS指向的目录最好和Tomcat指向的目录一致,不然会发生找不到图像和其他资源文件的问题。(这点不影响执行,呵呵!)
4.英文文档中还提到应该把IIS6设置为IIS5隔离模式,“Internet信息服务管理器”->“网站”->“属性”->“服务”,把“以IIS5.0隔离模式运行WWW服务”打上勾。如果你配置不成功也可以试试这个。我没设置此项也成功了,你可以自己试验一下。 (配置未通过的此处注意下)

经过测试发现,原来有些windows server 2003的服务器必需要以IIS5.0隔离模式运行WWW服务来运行( 本人在windows server 2003 R2 SP2 X64标准版系统下,使用了IIS5.0隔离模式运行此项才得以成功!注意:此处可能会导致其他程序不能正常运行)。由于开使用的isapi_redirect.dll为32位版本,在启用此项后报错:

引用
由于一个配置问题,无法加载 ISAPI 筛选器 'D:\Tomcat 6.0\conf\connector\isapi_redirect.dll'。当前配置只支持加载为 AMD64 处理器体系结构创建的映像。数据字段包含错误号。要了解这个问题及如何解决此类处理器体系结构不匹配错误的更多信息,请访问 http://go.microsoft.com/fwlink/?LinkId=29349。
解决:
下载64位isapi_redirect.dll版本更换:
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win64/



PS: 有的教程还提示 :确认你的Tomcat安装目录下的common\lib目录中是否有tools.jar文件(Tomcat5好像是有的,但Tomcat4中是没有的,网上的文档很少提到这件事,致使我多次配置失败),没有的话从JDK的lib下拷一个过去。 据我了解,最新版的好像JDK和TOMCAT都没这文件,我的没有此文件,也配置成功了。

另外:Tomcat6.0和IIS6.0整合(jk2)isapi_redirector2.dll

在本系统中使用IIS6.0+TOMCAT+jk2模式下也试过,始终报告错误
引用

事件 ID ( 2 )的描述(在资源( Apache Jakarta Connector2 )中)无法找到。本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息。您可能可以使用 /AUXSOURCE= 标识来检索词描述;查看帮助和支持以了解详细信息。下列信息是事件的一部分:  [jk_isapi_plugin.c (713)]: read_registry_init_data, Failed Registry OpenKey Software\Apache Software Foundation\Jakarta Isapi Redirector\2.0


希望有在jk2模式下配置成功的不吝告诉一下。

[2011.3.11补充:Tomcat6.0和IIS6.0整合(jk2)成功]
将网上大部分教程针对的是32位系统,而我用的是X64的系统,导致添加注册表信息后程序不能正常读取注册表信息;
上面的错误信息“[jk_isapi_plugin.c (713)]: read_registry_init_data”,是由于RegOpenKeyEx此函数在64位系统中的读取注册表的方式不一样导致:
引用

在Windows 64位系统注册表实际上是分为两个部分。使用一节,由64位进程,一个由32位进程的一部分。

例如,如果一个32位应用程序编程写入到它认为是HKLM \软件\公司\应用程序,它实际上是由在WOW64层重定向到HKLM \ Software \ Wow6432Node \公司\应用。

因此,当你运行你的32位应用程序并调用RegOpenKeyEx它实际上是对工作的Wow6432Node \文件夹,而不是常规\软件节点。


修改如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\2.0]
"serverRoot"="D:\\Tomcat 6.0" 
"extensionUri"="/jakarta/isapi_redirector2.dll" 
"workersFile"="D:\\Tomcat 6.0\\conf\\workers2.properties" 
"logLevel"="DEBUG"

改为:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Jakarta Isapi Redirector\2.0]
"serverRoot"="D:\\Tomcat 6.0" 
"extensionUri"="/jakarta/isapi_redirector2.dll" 
"workersFile"="D:\\Tomcat 6.0\\conf\\workers2.properties" 
"logLevel"="DEBUG"

注意:增加了 Wow6432Node

你可能感兴趣的:(tomcat,应用服务器,jsp,配置管理,IIS)