Tomcat5配置数据源的方法
在网上看到很多人问Tomcat5配置数据源的方法,结合自己的实践介绍一下Tomcat5如何通过直接修改配置文件和通过控制台两种方法来实现数据源的配置。
在Tomcat5里,即使配置了全局数据源仍然需要配置Web应用的局部数据源才可以使用(Tomcat5.5和Tomcat6.0这里不涉及)
一、直接修改配置文件配置数据源
直接修改配置文件有两种方法,一种是添加全局数据源连接,然后添加Web应用的数据源连接,link到全局数据源连接,一种是只添加Web应用的局部数据源连接(其实通过控制台配置数据源也是修改配置文件,只不过是通过可视化的IE窗口来完成而已)
这里介绍只配置Web应用的局部数据源的方法。
可以在两个地方配置Web应用的局部数据源,
1、修改server.xml
找到Tomcat根目录,在conf文件夹下找到server.xml文件,找到<Host></Host>标签,在</Host>前面加入下面的代码
<Context path="/web应用名" docBase="web应用名" debug="5" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_citbj_log." suffix=".txt" timestamp="true"/> <Resource name="jdbc/datasource" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="数据源名称"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <parameter> <name>maxWait</name> <value>10000</value> </parameter> <parameter> <name>username</name> <value>数据库用户名</value> </parameter> <parameter> <name>password</name> <value>数据库密码</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>数据库连接</value> </parameter> </ResourceParams> </Context>
web应用名是工程的名字,数据库我使用的是MysqL,DataBase是test
所以数据库连接是:jdbc:mysql://localhost:3306/test?autoReconnect=true,Oracle,Sqlserver等的连接大家可以从网上找到,这里不列举。
配置好Server.xml后,把mysql的驱动包放入Tomcat根目录下的common\lib文件夹下,缺少这个驱动,测试时会抛出异常
完成上面两步就可以测试了
测试代码
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("数据源名称");
Connection conn = ds.getConnection();
System.out.println(conn);
这里数据源名称就是上面server.xml里的数据源名称,两个名称要保持一致
控制台输出类似org.apache.commons.dbcp.PoolableConnection@1bef987的语句,测试成功!
怎么样,很简单吧!
2、自定义配置文件
除了修改server.xml,还可以自己定义一个配置文件。
在Tomcat的根目录下,找到conf\Catalina\localhost目录,建立一个文件context.xml(任意文件名都可以,不一定必须是context),把上面的配置代码拷贝到context.xml里,修改一下其中的web应用名,数据库连接的相关信息,把mysql的驱动包放入Tomcat根目录下的common\lib文件夹下,用测试代码测试。
控制台输出类似org.apache.commons.dbcp.PoolableConnection@1bef987的语句,测试成功!
二、通过控制台配置数据源
通过控制台配置数据源也有两种方式,一种是先配置全局数据源,然后在配置局部数据源,(配置了全局数据源依然需要局部数据源,否则抛出Name jdbc is not bound in this Context错误);一种是直接配置局部数据源。由于只配置局部数据源就可以达到目的,这里介绍只配置局部数据源的方法。
启动Tomcat5,IE地址栏输入http://localhost:8080/admin进入控制台,展开左侧Tomcat Server,注意,点击字前面的小钥匙就可以了,点击字是打开当前项,而不是展开菜单。如图所示:
找到工程(我的是northking),展开后,点击Data Sources,在右侧上面的Data Source Actions处的下拉列表中选择Create New Data Source ,填写各项信息,如图所示:
这里JNDI Name就是数据源的名字,测试代码里的数据源名称要和这里保持一致,否则找不到数据源。
点击save,然后点击页面上方的Commit Changes,这时,去观察server.xml会发现找个文件的内容被改变了,而且在conf\Catalina\localhost目录下多出来一个文件 — 工程名.xml,我的是northking.xml,打开这个文件会看到,里面的代码和直接修改配置文件添加的代码是相同的,Tomcat启动时会读取这个文件。把mysql的驱动包放入Tomcat根目录下的common\lib文件夹下,重启Tomcat,用测试代码测试,
控制台输出类似org.apache.commons.dbcp.PoolableConnection@1bef987的语句,测试成功!
总结:直接修改配置文件和控制台配置两种方式,最终的结果都是在xml文件中添加一段配置信息,从而使Tomcat在启动时读取到配置信息,达到配置数据源的目的。