这两天正好项目刚刚完成,所以就好好的研究了下Resin。我用的Resin版本是3.0.19,中间遇到一些常见的问题,但是网上大多数的资料都是1.x或2.x的,在3.x中是不能使用的,所以查到解决的办法不是件容易的事情,现在整理出来与大家分享:
1. 怎样关闭目录浏览方式?
查了些资料,大多数都是说可以 将directory-servlet设置为 “none” 来禁止目录浏览,但是这种方式只是针对于Resin2.x,在3.x中已经不使用directory-servlet了。后来看了下官方的文档资料,原来关闭目录浏览的方法很简单,只需要将resin.conf中
修改为
或者直接注释掉这一段代码就可以了。
2. 设置Servlet为默认首页
在web.xml中这样设置
<servlet-mapping>
<servlet-name>MainPageServlet</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping><welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>
如果这样的话在Tomcat中可以实现的,但是在Resin中会提示404。后来查了下资料,发现在Resin中默认的首页文件必须真实存在才可以的(”Point is that welcome file MUST exist on the server.”),所以除了上述的设置之外还需要在网站跟目录下面创建一个同名的空文件就可以了。
3. 安装Resin为WinNT服务
使用以下命令安装Resin为NT服务:
卸载服务使用下面的命令:
这里需要说明的是:如果Apache和Resin组合的话,删除Resin的NT服务之前首先需要停止Apache,否则无法删除。
4. 出现OutOfMemoryException的解决方法
出现OOM异常大多数是因为分配给Resin的内存过小造成的,这个时候可以使用以下命令增大Resin的内存:
unix> bin/httpd.sh -Xmn100M -Xms500M -Xmx500M
win> httpd.exe -Xmn100M -Xms500M -Xmx500M
install win service> httpd.exe -Xmn100M -Xms500M -Xmx500M -install
这样就可以设置Resin使用的内存了
5. Resin和Apache组合
我感觉Resin和Apache组合是最简单的,设置比Tomcat简单方便的多。总结一下可以使用如下步骤:
1) 分别安装Apache和Resin
2) 在Apache中的httpd.conf中添加模块,代码如下:
3) 如果是同一IP的多个站点,可以将
ResinConfigServer localhost 6802
放到VirtualHost代码中,下面是一个例子:
ServerName www.3721.com
DocumentRoot "C:\website\www"
ResinConfigServer localhost 6802
当然如果想让虚拟站点正确运行的话,还需要在Resin的resin.conf文件中添加站点,具体可以参考Resin手册;如果不是同IP的虚拟站点,只要将 ResinConfigServer localhost 6802 放到任意一个地方就可以了
最后分别重启一下Resin和Apache就可以了,是不是很简单?
参考资料:
Resin 3.0 官方文档
/RESIN/ welcome-files & servlet
http://groups.google.com/group/fido7.ru.java/browse_thread/thread/986b22abad39551c/8cd4cbffabd64fe1?lnk=st&q=resin+servlet+welcome-file&rnum=2#8cd4cbffabd64fe1
我可以加你的QQ吗,我想请教下Resin的问题,现在我在这里卡住了呀,真的很需要你的帮助,谢谢!