IIS整合Tomcat的目的,就是要在IIS上把所有关于JSP的请求转发到Tomcat上处理,再把结果发送给客户端,从外部看来,就好像是 IIS支持JSP一样.而配置的方法,网上虽然能找到很多,但是由于IIS7相对于以往改变较大,所以配置过程还是遇到了不少麻烦.
1.安装JDK 1.5与Tomcat 5.5,生产环境建议安装exe版本以服务的方式运行,JDK和exe版的Tomcat基本不需要配置.而我这边主要是用以调试,所以是下载zip文件形式的Tomcat.相关的配置方法,可以参考这篇文章,注意IIS和Tomcat都使用各自默认的端口80和8080.
2.在IIS中把JSP相关的请求发送到Tomcat需要Tomcat Connector的支持.事实上,Tomcat为主流的 Web Server 和 OS 都提供了支持.这应该是由于Tomcat将自己定位为JSP容器,而非 Web Server,即使它也可以作为 Web Server 使用.在上面的链接中下载 isapi_redirect.dll ,我把它放到了 Tomcat 目录里面的 bin\win32\i386 里面.然后参考这里对 Connector 进行配置,我这里使用了注册表的方式,上面还有另一种通过properties文件进行配置的方法.这里要注意的是,虽然上面说在 Tomcat 的 conf 目录里能找到示例的配置文件,但我在tomcat里面却没有发现相关的文件.这里给出 workers.properties 和uriworkermap.properties 简单示例
workers.properties
# workers.properties.minimal -
#
# This file provides minimal jk configuration properties needed to
# connect to Tomcat.
#
# The workers that jk should create and work with
#
worker.list=ajp13w
#
# Defining a worker named ajp13w and of type ajp13
# Note that the name and the type do not have to match.
#
worker.ajp13w.type=ajp13
worker.ajp13w.host=localhost
worker.ajp13w.port=8009
uriworkermap.properties
# uriworkermap.properties - IIS
#
# This file provides sample mappings for example ajp13w
# worker defined in workermap.properties.minimal
# The general sytax for this file is:
# [URL]=[Worker name]
/servlets-examples/*=ajp13w
# Optionally filter out all .jpeg files inside that context
# For no mapping the url has to start with exclamation (!)
workders.properties中可以定义多个worker,若要添加worker,首先要修改worker.list项,多个worker使用,号分隔,然后再通过 worker.<worker_name>.<property_name>的形式定义workder的属性.如上例中的 ajp13w,其中type表示Tomcat端使用的协议,除了ajp13外,常见的还有旧版的ajp12协议,host自然就是指tomcat所在的主机,我的理解是应该可以把它指到其他的主机上面,实现负载均衡等高级应用.port一般不需要更改,要注意这个port是提供ajp13服务的,与 8080的http是两回事.我在配置的时候就发生ajp13服务没有正常启动,重启了服务器之后才解决,要确认该服务器有无启动,可以查看logs下面的stdout开头的日志文件,基有发现"INFO: JK2: ajp13 listening on /0.0.0.0:8009" 字样的行,说明Tomcat的 ajp13已经正常运行.
uriworkermap.properties的配置方法也很简单,等号的左边是url的样式,右手边就是worker的名称.Connector会把匹配该样式的请求转发到指定的worker去进行处理.这里相当于在IIS把/servlets-examples/映射到Tomcat的/servlets-examples/应用程序.你也可以把 IIS里面的站点根目录和Tomcat里面的站点根目录指到同一个目录,然后再把*.jsp和*.do映射到Tomcat去处理,这种方法应该比较适合生产环境,因为据说tomcat对静态文件的处理能力较差.
3.现在开始对IIS进行配置,首先打开 IIS管理器 ,ISAPI和CGI限制 里面把isapi_redirect.dll添加进去,并设为允许,如果果你找不到这一项,请点击右边树形菜单的根选项,即是以计算机名称开头的项.只有在这里才能找到.这个相当于IIS6里面的"Web 服务扩展",要在这里有设定为允许的项才能在IIS里面被执行.
完成这一步之后,再在网站里面的"Default Web Site"添加应用程序.程序名应对应于在注册表中extension_uri的设置.此处为"jakarta",然后将物理路径指向isapi_redirect.dll所在的目录.完成之后点击这个应用程序,进入处理程序映射,点击右手边的"编辑处理程序权限...",把"执行"项勾打上.
随后为站点添加ISAPI筛选器以便Connector能截取到URL请求.点击"Default Web Site" ->"ISAPI 筛选器" ,把isapi_redirect.dll添加进去,名称可以随便起.
完成这个步骤以后,Connector就可以对请求进行过滤,把符合配置文件中的请求重写到extension_uri指定的uri进行处理,这里为/jakarta/isapi_redirect.dll,然后isapi_redirect.dll再转发到tomcat的8009由tomcat处理完成后再循原路发回去.
如对 workers.properties 进行更改,需要重启IIS.另外VISTA下面似乎uriworkermap.properties的动态加载功能也无法正常运行.每次更改也需要重启IIS..
你说整合!!!一个跑asp、asp.net的 一个跑j2ee的 !!!!!!整合貌似。。。
你可以试试两个应用使用一个数据库~
或者两个数据库数据交换
要不java用流写txt asp、asp.net文件功能读取~
但是貌似用数据库比较容易~ 直接存取就好了~
但是要是同一个库 要注意线程安全问题~
要是俩系统 你可以写在一个数据库为两个应用分别建立不同的表再建立中间表进行数据的交换~
楼主研究下吧~我说的内容怎么写百度一搜就有~ 也不知道你是不是这意思~
给你一个最简单的回答,假如一台服务器需要支持ASP.NET和JSP。asp.net需要IIS来解析,jsp需要tomcat来解析,IIS使用80端口,tomcat的网站就不能使用80端口了,那样别人打开JSP的网站只能设置跳转或http://域名:端口号访问了。反之tomcat用80端口IIS就不能用80端口了,这里就用到了整合,IIS将JSP交给tomcat来解析。整合之后用域名直接就可以访问jsp和.net的网站了。不必加端口号访问了。欢迎分享,转载请注明来源:夏雨云
评论列表(0条)