最近要部署一个java web程序,服务器上已经运行有IIS和PHP的网站和论坛,最好的办法就是将Resin和IIS整合在一起,让IIS解析静态文件(html,js,css等),Resin解析jsp,action等.环境IIS6+Resin3.0.25+JDK6 update11
步骤如下。
第一步 :当然是安装JDK了。从SUN网站上下载最新版的JDK,当前版本是JDK6 update11.下载完成安装,一路next。
安装完成后,右键单击“我的电脑”,选择“属性”,打开“高级”选项卡,点“环境变量”按钮。
看到当前帐户和系统变量的列表。“新建”
- 变量名:JAVA_HOME 变量值: 刚才的安装路径
- 变量名:CLASS_PATH 变量值: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\tools.jar
- 找到系统变量里的PATH变量,“编辑”在变量值后面加上 ;%JAVA_HOME%\bin
设置完成后,在cmd中检验是否安装成功,运行javac,会出现如下窗口
说明JDK安装成功。
第二步:下载Resin,我下的是Resin3.0.25,网站:www.caucho.com
下载完成后,将resin-3.0.25解压缩,我这里是解压缩到C:\,打开resin-3.0.25,运行httpd.exe
可以看到,Resin运行正常(没有报错)。打开浏览器,输入:http://localhost:8080
看到上述页面,说明Resin运行正常。
第三步:给IIS6安装Resin插件,运行resin-3.0.25目录下的setup.exe
如果IIS正在运行,可以看到最下面已经填上Resin插件的安装位置了。直接点确定。
打开C:\inetpub\scripts目录,可以看到isapi_srun.dll已经复制到该目录了。
在该目录下新建一个文本文件resin.ini,粘贴上如下内容:
ResinConfigServer localhost 6802
CauchoStatus yes
IISPriority high
保存后,重新启动IIS,在Internet信息服务(IIS)管理器里,在左侧的树上,右键单击“网站”,选择“属性”
选择“ISAPI 筛选器”选项卡,中可以看到
在Internet信息服务(IIS)管理器里,在左侧的树上,单击“Web服务扩展”,可以看到
说明Resin插件已经安装成功。
如果您没有这么幸运,没有看到上述情况,请看这个:
1、运行resin-3.0.25目录下setup.exe后,所有网站都出现service unavailable错误,不能访问。
(我第一次就遇到这种情况,弄得把IIS卸载重新安装。)
如果IIS信息服务(IIS)管理器里面,“网站”的属性里面,ISAPI筛选器里面能够显示出Resin,但是
图标是一个红色向下的箭头。说明IIS能够找到该文件,但是加载失败,从系统日志里也可以看到。
这是C:\Inetpub\scripts的文件属性造成的,解决办法就是给这个文件加上权限。右键单击该文件夹,
“属性”,“安全”,点添加:输入用户“everyone”,给这个,赋以完全控制权限(为了图省事,可能会有安全问题)。
重启IIS后,问题解决了。
2、如果在“Web服务扩展”中没有看到Resin,手动建一个。路径就是C:\Inetpub\scripts\isapi_srun.dll,别忘了设置状态为允许。
第4步,整合配置。
在IIS下建立一个网站,在该网站下“新建”,“虚拟目录”,别名scripts,路径为C:\Inetpub\scripts,
权限设置为如下:
邮件单击“网站”,选择“属性”,“主目录”选项卡:
点击“配置(G)...”按钮,在打开窗口中点“添加”
让Resin插件能够解释jsp文件。在目录下新建一个test.jsp文件
内容为:
2+2 = <%=2+2%>
在浏览器中浏览http://localhost/test.jsp,能够正常显示。说明整合成功。
A. 但是上述配置不能够正常解析do,action等扩展名,为了让IIS和Resin能够解释
do,action等扩展名,需要在Resin配置文件中host>web-app下面加入如下内容:
<servlet-mapping url-pattern="*.action" servlet-name="resin-file"/>
保存后,重新启动IIS,Resin发现能够正常运行。
B. 在配置完成后,如果其他网站和Resin整合IIS的网站共用一个应用程序池,也会造成网站
不能正常访问,这是将每个网站单独配置一个程序池即可解决。