`
齐晓威_518
  • 浏览: 604978 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Tomcat6配置JNDI(Oracle数据库)

 
阅读更多

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();

分享到:
评论

相关推荐

    tomcat_jndi_hibernate.txt

    tomcat_jndi_hibernate 是我总结的一些关于在tomcat下配置jndi数据源的方法,我用的是oracle数据库. 配置好jndi后,用于hibernate时其中也有提到

    java-tomcat7-jndi-mysql-oracle-jdbc:访问Tomcat 7中配置的数据源

    使用 JNDI 示例访问 Tomcat7 数据源描述:访问 Tomcat 7 中配置的两个数据源(Oracle 和 MySQL)的 Web 应用程序添加一名作者技术:Java、Tomcat 7、JDBC 摘要:访问Tomcat 7中配置的数据源的Web应用程序它是什么?...

    jsp实现jndi连接查询oracle

    1,请将context.xml代替tomcat安装包下的conf文件夹下的context.xml,并将数据库的密码和用户 ip换为自己的。 2,将index.jsp替换位于myeclipse工程下的webroot下的index.jsp。sql语句换为自己的。 3,将web.xml替换...

    怎样实现Java与oracle数据库的连接

    比如在Tomcat中配置了一个JNDI数据源,那么在程序中之需要用Java标准的API可以查找到这个数据源,以后数据源配置发生变化了,等等,程序都不需要改动,之需要改改JNDI的配置行。增加了程序的灵活性,也给系统解耦了...

    Struts1.2+Tomcat5.5网上购物系统

    自己学习Struts时练习做的一个网上购物系统,用JNDI配置了Oracle数据库,基本上实现了增加,修改,查询的基本功能。 环境:Struts1.2.8+Oracle10.2+Tomcat5.5 {建表用的SQL文 Create Table USER_INFO( userID ...

    JDBC 3.0数据库开发与设计

    2.1.3 Oracle 数据库的基本说明及其使用简介 2.1.4 MySQL的安装及使用简介 2.2 使用JDBC连接数据库 2.2.1 SQLJ基本知识 2.2.2 用PL/SQL和Java建立应用程序的基本知识 2.2.3 PL/SQL和Java的特性 2.2.4 PL/SQL和...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    在数据库处理方面,不需要在数据层借助存储过程及数据库服务器端函数封装过多的业务逻辑,因此数据库系统采用相对精巧的MySQL[6]。 该在线博客系统服务器端如果需要布置到其他主机上,则该主机必备条件如下: 1. ...

    “桂林高新杯”软件设计大赛.doc

    " "数据库应用开发 "考核要点 "分值 "20 " "Oracle10G与SQLS"1、常用数据库基本操作:数据库、表的创建; " "erver2005的应用"2、标准SQL的语句使用、索引、存储过程、触发器使用; " " "3、数据库链接和数据绑定。...

    java8集合源码-bookmark:常用书签

    JNDI 风险管理信息 JAVA-脚本 EL Oracle 微服务 工作流程 AOP 单元测试 数据开发 [Davinci 是一个 DVSaaS(数据可视化即服务)](平台) 设计模式 领域模型 报告 集成开发环境 数据库 Java-Spring Tomcat 对象序列化...

    java面试题

    52.6. 配置tomcat 6.0.10连接池 26 52.7. Hibernate实现数据库的连接不同方式: 28 52.8. 有几种开源的数据库连接池: 29 53. 描述一下JVM加载class文件的原理机制? 30 54. socket编程 30 54.1. 什么是TCP/IP、UDP?...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    jpivot学习总结.doc

    &lt;jp:mondrianQuery dataSource="" id="query01" jdbcDriver="oracle.jdbc.driver.OracleDriver" jdbcUrl="jdbc:oracle:thin:ngykt/ngyktadmin@172.16.46.241:1521:orcl10" catalogUri="/WEB-INF/queries/feeSchema....

    超级有影响力霸气的Java面试题大全文档

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

    java 面试题 总结

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

Global site tag (gtag.js) - Google Analytics