我用的tomcat版本是5.5.2,JDK:1.5,工程是struts2+spring+hibernate3.3三层框架整合,数据库不oracle9i,在tomcat中配置JNDI数据源在我的环境下是比较容易实现的,简单的在tomcat_home\conf目录下server.xml文件中,<Host></Host>之间加入以下的代码即可。
<Context path="/DEV" docBase="DEV" debug="5" reloadable="false" crossContext="true">
<Resource driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.2.9:1521:oracle" username="DEV"
password="password" name="jdbc/oracle" type="javax.sql.DataSource" auth="Container" maxActive="20" maxIdle="10" maxWait="5000" />
</Context>
其中path配置自己应用的路径,即tomcat_home\webapps目录下的自己部署工程
docBase: 应用的名称和上面相同;
driverClassName: 应用所要的驱动名;
url: 连接数据库的地址;
username: 登陆数据库要使用的用户名;
password: 登陆数据库要用的密码;
name: 引用上下文(context)的JNDI名,自己随便设;
type: 引用资源的类型;
maxActive: 每次连接数据库的最大数;
maxIdle: 每次连接数据库的等待数;
maxWait: 每次阻塞的最大延迟时间(毫秒);
就这样设置即可可以用了,但是只有一个同事那却无法使用,解决办法是在开发工程的META-INF目录下面添加一个context.xml文件,文件名称必须为:context.xml,添加如下内容就可以解决问题。
<Context>
<Resource driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.2.9:1521:oracle" username="DEV"
password="password" name="jdbc/oracle" type="javax.sql.DataSource" auth="Container" maxActive="20" maxIdle="10" maxWait="5000" />
</Context>
另注意前一种方式要把oracle驱动程序放置在tomcat_home\common\lib目录下,我的oracle驱动程序见附件