Tomcat6配置Oracle数据库JNDI
来源:互联网 发布:mac自带图标下载 编辑:程序博客网 时间:2024/05/31 11:04
今天郁闷了一下午,Tomcat6配置Oracle数据库的JNDI就是不好用,后来请教了我师父,终于弄好了,弄好了以后回过头来再一想,偶实在是太粗心了,本来doc上写的很清楚的东西我居然没看到,唉……赶快写出来,以免其他人遇到这个问题时也像我一样郁闷。
1. 配置Oracle JDBC Driver。将classes111.jar(Oracle8i)或classes12.jar(Oracle9i)或ojdbc14.jar(Oracle10g)拷贝到$CATALINA_HOME/lib(或Windows系统中%CATALINA_HOME%/lib)目录下。
注意:老版本的Drivers可能是*.zip或者是*.jar的文件,Tomcat只会使用$CATALINA_HOME/lib目录下的*.jar文件,因此需要把classes111.zip或classes12.zip文件rename为classes111.jar以及classes12.jar文件,因为jar文件就是zip文件,所以没有必要去unzip这些zip文件再打成jar文件。
另外:Oracle9i及以后的版本应该使用oracle.jdbc.OracleDriver而不建议使用oracle.jdbc.driver.OracleDriver,因为Oracle已经声明oracle.jdbc.driver.OracleDriver已经不再建议使用,并且Oracle也将不会提供后续主要版本对于oracle.jdbc.driver.OracleDriver的服务。
2. 修改Tomcat的server.xml文件,主要内容如下
<Context docBase="niniapp" path="/niniapp" reloadable="true" source="org.eclipse.jst.jee.server:qprlzy">
<Resource name="JNDI_NINIAPP" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="nini" password="nini" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.2.9:1521:orcl"/>
</Context>
在这里添加的数据源的名字为JNDI_NINIAPP,username是数据库用户名;password是数据库中该用户名对应的密码;driverClassName是数据库驱动;maxIdle是最大空闲数,即数据库连接的最大空闲时间,超过空闲时间,数据库连接将被标记为不可用,然后被释放掉,如果设为0,则表示无限制;maxActive是连接池中最大数据库连接数,如果设为0,则表示无限制;maxWait是最大建立连接等待时间,如果超过次时间就会报异常,如果设为-1,则表示无限制。
我师父给我推荐的blog上也提到在可以这样写:
<Context docBase="niniapp" path="/qprlzy" reloadable="true" source="org.eclipse.jst.jee.server:qprlzy">
<Resource name="JNDI_NINIAPP" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="JNDI_NINIAPP">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@192.168.2.9:1521:orcl</value>
</parameter>
<parameter>
<name>username</name>
<value>nini</value>
</parameter>
<parameter>
<name>password</name>
<value>nini</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
</ResourceParams>
<ResourceLink global="JNDI_NINIAPP" name="JNDI_NINIAPP" type="javax.sql.DataSource"/>
</Context>
我试过了,两种写法都可以成功。当然,我看还有通过Tomcat的web应用管理界面(Tomcat Web Server Administration Tool)来配置JNDI的方法,不过我没有试验过哈。
3. 有人说还要配web.xml,我不用配就OK,有哥们说如果不进行一下配置的话,Tomcat4配置连接池就会失败,这是Tomcat4的bug吗?偶不关心啦!不过如果要配置的话,则需要在E;/niniapp/WEB/WEB-INF/web.xml中加入如下内容:
<web-app>
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
其中,res-ref-name是数据源名字,与上面server.xml中所配置的属性name的值。
4. 代码样例:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();
按照上面步骤,我测试终于通过了!
- Tomcat6配置Oracle数据库JNDI
- tomcat6.0 + Spring 配置JNDI连接数据库
- tomcat6配置jndi连接数据库的方式
- Tomcat6.0+Spring+JNDI+C3P0连接oracle数据库
- Tomcat6.0+Spring+JNDI+C3P0连接oracle数据库
- tomcat6.0中JNDI配置
- tomcat6.0 JNDI 配置(图解)
- JNDI数据源配置连接Oracle数据库
- TOMCAT6全局数据源(Global JNDI)配置
- Tomcat6.0 配置JNDI数据源总结
- Tomcat6.0 JNDI的配置与调用
- Tomcat6.0配置JNDI数据源完整例子
- Tomcat6.0配置JNDI数据源完整例子
- Tomcat6.0 配置外部数据源(JNDI)
- Tomcat6+spring+jndi配置数据源说明
- Tomcat6.0配置JNDI数据源完整例子
- JNDI tomcat6 配置Mysql的数据池
- tomcat6中配置jndi及jndi在spring中的使用
- 学习笔记之maven2学习总结(1,入门起步与实践)
- 查找一段文字中最长的重复字串 - 编程珠玑(排过序的后缀数组的应用)
- 卖猪男和农家女是如何引发经济危机的
- 单例模式(Singleton)
- SMP/E指南阅读日志zz
- Tomcat6配置Oracle数据库JNDI
- Epi n Basel Watch Fair, My Favorite n D G
- cvs创建用户
- c++ hash_map 详细介绍
- weblogic9 破解限制连接数
- iphone开发问题及解决
- socket options
- 获得指定表的字段名等相关信息
- 如何防止插入删除表造成的数据库死锁