>>分享孙卫琴的Java技术专稿和著作 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 24031 个阅读者 刷新本主题
 * 贴子主题:  【JavaWeb专题】Tomcat与IIS集成详解 回复文章 点赞(0)  收藏  
作者:sunweiqin    发表时间:2019-06-13 18:13:24     消息  查看  搜索  好友  邮件  复制  引用

本文介绍如何把IIS服务器与Tomcat集成。本文的参考书籍是《Tomcat与Java Web开发技术详解》第三版,作者:孙卫琴,电子工业出版社出版。
本文所用的软件版本为:Window10,Tomcat9。
本文所涉及的源代码的下载网址为:http://www.javathinker.net/javaweb/iis-tomcat.rar

IIS(Internet Information Service)服务器是微软开发的功能强大的Web服务器,IIS为创建和开发电子商务提供了安全的Web平台。把Tomcat与IIS集成,可以扩展IIS的功能,使它支持Java Web应用。

1.1  安装和启动IIS服务器

高版本的Windows自带了IIS,但默认情况下没有被启用。下面以Window10为例,介绍启用IIS的步骤。
(1)选择操作系统的【控制面板】→【程序】→【启动或关闭Windows功能】,打开“启动或关闭Windows功能”的窗口,参见图1-1。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1-1  打开“启动或关闭Windows功能”窗口

(2)在“启动或关闭Windows功能”的窗口中,选择与IIS信息服务相关的所有选项,参见图1-2。确保启用了“应用程序开发功能”中的各个选项。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1-2  在Windows中启用IIS的各项功能

(3)选择操作系统的【控制面板】→【系统和安全】→【管理工具】→【Internet Information Services (IIS)管理器】,打开IIS管理器。
(4)在IIS管理器窗口左侧的目录树中选择表示本地电脑的主机节点,点鼠标右键,在下拉菜单中选择“启动”,就会启动IIS服务器。如果选择“停止”,就会终止IIS服务器,参见图1-3。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1-3  在IIS管理器中启动或终止IIS服务器

(5)按照以上步骤(4)启动IIS服务器后,通过浏览器访问http://localhost,如果出现如图1-4所示的页面,就表示IIS服务器已经安装和启动成功。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1-4  访问IIS服务器的主页

1.2  准备相关文件
在开始本节的操作之前,假定已经按照本章1.1节的步骤,在机器上安装了IIS服务器,接下来准备好以下3个文件,它们的存放路径为Tomcat根目录的conf目录下(<CATALINA_HOME>/conf):
(1)JK插件:isapi_redirect.dll文件
(2)workers.properties文件
(3)uriworkermap.properties文件

1.JK插件
在源代码包的sourcecode/iis目录下提供了用于IIS的JK插件:isapi_redirect.dll,此外,也可以到以下地址下载最新的JK插件:
http://tomcat.apache.org/download-connectors.cgi

把JK插件isapi_redirect.dll拷贝到<CATALINA_HOME>/conf目录下。

针对不同的Windows版本,需要下载不同的IIS JK插件。在配套源代码包中,sourcecode/iis/isapi_redirect.dll适用于X86_64类型的Windows;sourcecode/iis/isapi_redirect_windows-i386.dll适用于i386型号的Windows。如果选用了不匹配的JK插件,会导致IIS服务器无法加载它。

2.workers.properties文件
在<CATALINA_HOME>/conf目录下创建如下的workers.properties文件。在配套源代码包的sourcecode/ iis目录下也提供了该文件:
worker.list=worker1
worker.worker1.port=8009  #工作端口,若没占用则不用修改
worker.worker1.host=localhost  #Tomcat服务器的地址
worker.worker1.type=ajp13  #类型
worker.worker1.lbfactor=1  #负载平衡因数

3.uriworkermap.properties文件
在<CATALINA_HOME>/conf目录下创建如下的uriworkermap.properties文件,它为JK插件指定URL映射。在配套源代码包的sourcecode/iis目录下也提供了该文件:

/*.jsp=worker1
/helloapp/*=worker1

以上配置代码表明worker1负责处理的URL包括“/*.jsp”,以及helloapp应用。

尽管把以上3个文件都放在Tomcat目录下,其实Tomcat服务器并不会访问这些文件。以上给出的是按照惯例的一种配置。事实上,也可以把这些文件放在文件系统的其他地方。另外,在实际操作过程中,发现把这个三个文件放在相同的目录下,更容易成功地把Tomcat与IIS集成。

1.3  编辑注册表

在配置Apache和Tomcat集成时,JK插件的属性是在Apache的配置文件httpd.conf中设置的。配置IIS和Tomcat集成时,应该在操作系统的注册表中设置JK插件的属性,以下是操作步骤。
(1)在Windows 中通过regedit命令编辑注册表,创建一个新的键:HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector \1.0,如图1-5所示。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1-5  在注册表中创建Jakarta Isapi Redirector\1.0键

(2)在Jakarta Isapi Redirector\1.0键下面创建新的字符串,参见表1-1,创建好之后的注册表如图1-6所示。
表1-1 在Jakarta Isapi Redirector\1.0键下面创建的字符串
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1-6  在Jakarta Isapi Redirector\1.0键下面创建新的字符串

在配套源代码包的sourcecode/iis目录下提供了注册表编辑文件jk.reg,如果不想按照以上方式手工修改注册表,也可以直接运行jk.reg文件(选中这个文件再双击鼠标即可),它会把以上配置内容自动添加到注册表中。jk.reg的内容如下:

Windows Registry Editor Version 5.00  

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

在运行jk.reg文件之前,应该把文件中的“C:\\tomcat”目录替换为读者本地机器上Tomcat的实际安装目录。

1.4  在IIS中加入“jakarta”虚拟目录

注册表修改以后,应该在IIS中加入名为“jakarta”的虚拟目录,它是JK插件所在的目录,以下是操作步骤。
(1)选择操作系统的【控制面板】→【系统和安全】→【管理工具】→【Internet Information Services (IIS)管理器】,打开IIS管理器。
(2)选中窗口左侧的目录树中的【Default Web Site】,单击鼠标右键,在下拉菜单中选择【添加虚拟目录】选项,如图1-7所示。创建一个虚拟目录,名为“jakarta”,对应的实际文件路径应该是isapi_redirect.dll文件所在的目录<CATALINA_HOME>/conf,参见图1-8。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1-7  选中“添加虚拟目录”菜单

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1-8  添加虚拟目录

1.5  把JK插件作为ISAPI筛选器加入到IIS

在IIS中加入名为“jakarta”的虚拟目录后,还应该把JK插件作为ISAPI筛选器(也称为过滤器)加入到IIS中,以下是操作步骤。
(1)在IIS管理器窗口左侧的目录树中选择“Default Web Site”节点,然后在右侧窗口中选择“ISAPI筛选器”栏目,添加新的ISAPI筛选器,筛选器名称为“jakarta”,可执行文件为<CATALINA_HOME>/conf /isapi_redirect.dll,如图1-9所示。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1-9  添加新的ISAPI筛选器

(2)在IIS管理器窗口左侧的目录树中选择IIS主机节点,然后在右侧窗口中选择“ISAPI和CGI限制”栏目,然后添加一条新的ISAPI和CGI限制,参见图1-10。在图1-10中,要把“允许执行扩展路径”选项打勾。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1-10  添加ISAPI限制

1.6  测试配置

重启Tomcat服务器和IIS服务器,通过浏览器访问http://localhost/index.jsp。如果出现Tomcat的默认主页,说明配置已经成功。此外,如果在Tomcat服务器上已经发布了helloapp应用(把配套源代码包的sourcecode目录下的helloapp目录拷贝到<CATALINA_HOME>/webapps目录下),可以访问http://localhost/helloapp/hello.htm;如果正常返回helloapp应用的hello.htm网页,说明配置已经成功;如果配置有误,可以按照以下方法来查找错误原因:
(1)如果isapi_redirect.dll、workers.properties和uriworkermap.properties文件没有放在同一个目录下,那么尝试把它们放在同一个目录下。
(2)确保下载的JK插件文件与Windows版本匹配。
(3)检查是否在注册表中注册了“Jakarta Isapi Redirector”键。
(4)确保在IIS管理器中添加虚拟目录和ISAPI筛选器时,提供的名字和文件路径都正确无误。
(5)在IIS管理器中添加了虚拟目录或ISAPI筛选器后,要重新启动IIS服务器才能生效。
可以查看JK插件生成的日志信息,它有助于查找错误原因。在注册表中设定该日志文件的存放位置为<CATALINA_HOME>/logs/isapi.log。

作者:孙卫琴

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 admin 在 2021-10-09 10:56:50 重新编辑]
网站系统异常


系统异常信息
Request URL: http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=822

java.lang.NullPointerException

如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员