在tomcat6.0中用jndi方式配置oracle数据库连接池
观察到的现象: tomcat启动后,直接用java类来调用连接池失败,用jsp页面来调用连接池成功,用jsp通过java类来调用连接池也成功。
对于这现象暂且这么理解: tomcat和java类分别是两个jvm进程,启动之后,没有关联,所以java类中并不知道tomcat配置的连接池,而jsp
调用java类获取连接池,从而使java类和tomcat属于一个进程。
下面是配置方法:
1.Tomcat 6.0\conf\context.xml文件中的<Context>...</Context>间加入
2.如果用Myeclipse发布项目后,Tomcat 6.0\webapps\项目名\WEB-INF\web.xml会自动生成如下信息,如果没有,手工添加
3.将数据库连接驱动包(ojdbc14.jar)放到Tomcat 6.0\lib和Tomcat 6.0\webapps\项目名\WEB-INF\lib目录下
4.获取连接池类
4.jsp调用java类
若改用c3p0连接池,
1.将1步中参数配置可改为
<Resource
auth="Container"
description="DB Connection"
driverClass="oracle.jdbc.driver.OracleDriver"
maxPoolSize="100"
minPoolSize="10"
acquireIncrement="3"
name="jdbc/gz"
user="ctwlan"
password="ctwlan"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="jdbc:oracle:thin:@10.21.3.95:1521:ctwlan" />