`

Tomcat数据源配置和部署

    博客分类:
  • JEE
阅读更多
数据源
Tomcat 5的数据源配置跟Tomcat 5.5的数据源配置有很多的差别,Tomcat 6的数据源配置跟Tomcat 5.5的配置基本上相同。
以前的Tomcat5的配置需要在server.xml文件当中配置或者在conf/Catalina/localhost下面相应的上下文配置文件做配置。这种配置方式不合理的地方在于,假如数据库做了更改,程序员需要手工去修改这些文件,不利于团队开发。
Tomcat 5.5跟Tomcat 6的配置显得更为简单,我们只需要在我们的WebRoot目录下,新建一个META-INF的目录(假如不存在),在该目录下创建一个 context.xml文件,并且在context.xml文件当添加以下的配置信息:
程序代码 程序代码
<Context>
  <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"
               maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
               username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/temp"/>
</Context>



其中:
name 表示指定的jndi名称
auth 表示认证方式,一般为Container
type 表示数据源床型,使用标准的javax.sql.DataSource
maxActive 表示连接池当中最大的数据库连接
maxIdle 表示最大的空闲连接数
maxWait 当池的数据库连接已经被占用的时候,最大等待时间
logAbandoned 表示被丢弃的数据库连接是否做记录,以便跟踪
username 表示数据库用户名
password 表示数据库用户的密码
driverClassName 表示JDBC DRIVER
url 表示数据库URL地址

在以往的tomcat当中还需要在web.xml指定相应的 resource,在tomcat 5.5以后的版本不写也可以,但建议还是配置。
程序代码 程序代码
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/test</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>



配置完之后,还需要将JDBC DRIVER存放在%TOMCAT_HOME%/lib里面,这是必须的,不然,tomcat没有办法找到driver,之后重新启动tomcat




最后,测试数据源是否正确,写一个test.jsp,在test.jsp得到DataSource,以下是程序片断
程序代码 程序代码
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/test");
Connection conn = ds.getConnection();



部署
tomcat启动时,默认加载webapp路径中的web应用程序,为了匹配任意路径下的的web应用程序,可以通过配置Context元素

Context元素常用属性
docBase 指定web应用的文档根目录、或war包路径名,可指定绝对路径名,也可指定基于Host元素,appBase属性的相对路径
path web应用上下文路径,如果指定空字符串"",则定义了虚拟主机的默认web应用程序,访问localhost即可
reloadable 是否重新自动加载WEB-INF/classes目录改变的文件
unpackWAR Tomcat运行web应用程序时,自动解压缩war包


1,在conf/server.xml文件中,host元素内加入
<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
  <Context path="/test" docBase="D:\jsp-examples" reloadable="true"/>
</Host>


2,在conf\Catalina\localhost路径,建立xml文件
<Context path="/test" docBase="D:\jsp-examples" reloadable="true"/>
这时path属性不起作用,以xml文件名作为web应用的上下文路径


WAR包
在要发布的web应用程序路径,
打WAR包:     jar -cvf name.war *
看WAR包内容: jar -tf name.war


Tomcat中servlet的另一种运行方式 -- servlet调用器\conf\web.xml文件中,有被注释的如下内容
    <servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
取消注释后可以通过 localhost:8080/webAppName/servlet/xxx.yyy.zzz.AAAServlet直接访问,不用在项目的web.xml文件中配置
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics