Tomcat 6多应用的Context配置

来源:互联网 发布:立方米网络规模 编辑:程序博客网 时间:2024/05/17 02:44
这几天一直在看tomcat 6的有关内容,在其文档中看到tomcat 5,6关于context的配置不同于tomcat 4,不推荐在server.xml中进行配置,在context.xml文件中进行配置才是更好的方法。回想以前所有的项目都是在server.xml中 配置context的,每次部署一个新的应用或者修改context内容都要重新启动tomcat,导致应用总是要中断服务一小段时间,比较不方便,而且 多个context都在server.xml中,显得有些杂乱。于是决定使用在context.xml中进行配置应用的方式。在tomcat_home/ conf目录下有一个context..xml文件,修改其中内容之后,tomcat 能够自动reload所有的应用。
我的应用是在 tomcat_home/webapps下部署了多个应用,这多个应用的context配置是不同的。于是我把原来server.xml有关 context的部分(多个)复制出来,粘贴到context.xml中,保存之后,启动tomcat ,发现启动的时候出错,看来tomcat是不支持在一个context.xml中配置多个不同应用的。上网上google有关在context.xml中 配置多个应用的方法,遗憾的是,始终无法找到。后来仔细阅读tomcat 文档,终于找到了解决方法,在应用下面的META-INF文件夹下建立context.xml文件就可以满足应用的定制需求。具体路径就是: tomcat_home/webapps/yourApp/META-INF/context.xml,这样每个应用都可以拥有各自的配置,修改了该文件 中的内容,tomcat可以自动重新装载该应用,非常的方便。下面是一个可以自动重新装载servlet和javabean(方便debug),带有数据 库连接池(以Oracle为例)的context.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" crossContext="true">
 <!-- Default set of monitored resources -->
 <WatchedResource>WEB-INF/web.xml</WatchedResource>
 <!-- Uncomment this to disable session persistence across Tomcat restarts -->
 <!--
  <Manager pathname="" />
 -->
 <Resource name="jdbc/myoracle" auth="Container"
              type="javax.sql.DataSource"
     driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
              username="scott"
     password="tiger"
     maxActive="20"
     maxIdle="10"
              maxWait="-1"/>
 <Logger className="org.apache.catalina.logger.FileLogger"
  prefix="localhost_DBTest_log." suffix=".txt" timestamp="true" />
 <Valve className="org.apache.catalina.valves.AccessLogValve"
  prefix="localhost_access_log." suffix=".txt" pattern="common" />
</Context>
原创粉丝点击