当前位置: 主页 > 服务器技术 > Web服务器 > resin配置说明

resin配置说明

时间:2010-1-14来源:互联网 点击:
Resin是一款强大的网络服务器,resin的标准配置中主要有四个文件:resin.conf,app-default.xml,web.xml和resin-web.xml。

在resin.conf文件得“resin->server”元素下,我们导入了app-default.xml文件,在app-default.xml文件的“web-app-default”元素下我们导入了web.xml和resin-web.xml文件。

简单的说,Resin的配置选项可以分为三类:global(全局),defult(缺省),special(特定)。

全局:这些选项通常是唯一的,我们只需设置一次即可。如线程池、日志格式等。

缺省:当某一选项在多个地方出现时,我们需要设置这个选项的缺省行为。如缺省主机设置,缺省web应用设置等。

特定:设置一个选项的在特定地方的特定行为,即在缺省的行为上作一些修改。如设置某主机的特定参数,为某Web应用配置单独的数据库连接池等。

resin-web.xml和web.xml文件之间的区别:这两个文件如果在Resin下你可以合而为一,Resin完全能识别,最好还是分开。Web.xml的内容应该是符合J2EE规范内容,不应该包含任何容器特定的东西;而resin-web.xml则包含容器相关的内容,如提供数据库连接池服务、设置resin相关的资源服务、JMX、IoC等,这和EJB的形式完全一样,ejb-jar.xml是标准,各个应用服务器又有自己特定规范文件,如jboss.xml、weblogic.xml等等,这样做的目的很明显,方便移植。

我们讲述了这些标准的配置文件,其实Resin允许你将一些选项设置提取出来,形成单个文件,其他的配置文件可以引用该文件。你只需在需要引入其他文件的xml配置文件中,添加xmlns:resin=http://caucho.com/ns/resin/core空间声明,然后调用<resin:import path="filename.xml"/>元素进行引入即可。通过这种引入机制,将负责的配置文件进行分解,你可以让配置文件的管理更轻松。Resin采用Relax-NG方式来验证xml的,好多工具无法根据Relax-NG进行xml代码的自动提示和校验。如果将Relax-NG转换为xml 的schema文件,那么修改xml配置文件将非常便利。

先介绍如何让Spring2.0在Resin下正常运行:

参考:http://www.caucho.com/resin-3.0/xml/jaxp.xtp#xerces

       因为Resin缺省没有用xerces解析xml,所以resin无法解析Spring2.0的配置文件。

具体做法:

1.      拷贝xercesImpl.jar,xml-apis.jar,如果用到xslt,还需要拷贝xalan.jar;

2.       将下面几行加入到resin.conf中:

<system-property javax.xml.parsers.DocumentBuilderFactory=‘org.apache.xerces.jaxp.DocumentBuilderFactoryImpl‘/>

<system-property javax.xml.parsers.SAXParserFactory=‘org.apache.xerces.jaxp.SAXParserFactoryImpl‘/>

如果用到xslt,还要加入一行:

<system-property javax.xml.transform.TransformerFactory=‘org.apache.xalan.processor.TransformerFactoryImpl’/>

因为struts2的服务方式为filter方式,而Resin的mod_caucho插件正常情况下仅会对Servlet,Jsp服务,不会对Filter过滤的网址服务,这给struts2在Resin上使用带来一些问题。这可使用"Special servlet-mappings",详细情况可以参考http://www.caucho.com/resin-3.0/install/plugin-dispatch.xtp。

也就是说,对于一些特殊的url,可以使用plugin_match来让resin来服务,而plugin_ignore的作用正好相反。在这里,我们需要plugin_match,为了避免打乱正常的配置,我们使用和web.xml文件相同作用的resin-web.xml来设置相应的url,这样设置仅对resin有效,不影响其他server,还是不错的。

最后的resin-web.xml是这样的:m

<web-app xmlns="http://caucho.com/ns/resin">

<servlet-mapping url-pattern=‘/struts/*‘ servlet-name=‘plugin_match‘/>

<servlet-mapping url-pattern=‘/other/*‘ servlet-name=‘plugin_match‘/>

<servlet-mapping url-pattern=‘*.action‘ servlet-name=‘plugin_match‘/>

<servlet-mapping url-pattern=‘*.html‘ servlet-name=‘plugin_match‘/>

<servlet-mapping url-pattern=‘*.do‘ servlet-name=‘plugin_match‘/>

<servlet-mapping url-pattern=‘/dwr/*‘ servlet-name=‘plugin_match‘/>             

</web-app>

这样struts2的action就可以正常工作了。

另外,如果url后面自动跟上jsessionid的话,resin会反应404找不到网页的错误。在host里配置里加上<session-config enable-cookies=‘true‘ enable-url-rewriting=‘false‘/>可避免些问题。

站长资讯网
. TAG: resin 配置
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言