jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称

访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。

tomcat配置jndi有全局配置和局部配置。大致的有以下三种配置方式:

第一种:全局配置。

1)在tomcat的conf文件夹下的context.xml配置文件中加入:

  1. <Resource name="jndi/mybatis"
  2. auth="Container"
  3. type="javax.sql.DataSource"
  4. driverClassName="com.mysql.jdbc.Driver"
  5. url="jdbc:mysql://localhost:3306/appdb"
  6. username="root"
  7. password="123456"
  8. maxActive="20"
  9. maxIdle="10"
  10. maxWait="10000"/>

2)在项目的web.xml中加入资源引用:

  1. <resource-ref>
  2. <description>JNDI DataSource</description>
  3. <res-ref-name>jndi/mybatis</res-ref-name>
  4. <res-ref-type>javax.sql.DataSource</res-ref-type>
  5. <res-auth>Container</res-auth>
  6. </resource-ref>

其中res-ref-name值要和context.xml的name值一致。

3)jndi测试方法:

  1. public void testJNDI() throws NamingException, SQLException{
  2. Context ctx = new InitialContext();
  3. DataSource ds = (DataSource) ctx.lookup("java:comp/env/jndi/mybatis");
  4. Connection conn = ds.getConnection();
  5. System.out.println(conn.isClosed());
  6. }

4)在jsp中调用加载jndi方式,不可以直接用main方法测试,必须通过启动容器从jsp中调用:

  1. TestPageAccessURL test = new TestPageAccessURL();
  2. test.testJNDI();

第二种:局部配置(不推荐)。

1)在tomcat的server.xml的<host>标签内,添加:

  1. <Context path="/demo_jndi" docBase="/demo_jndi">
  2. <Resource
  3. name="jndi/mybatis"
  4. type="javax.sql.DataSource"
  5. driverClassName="com.mysql.jdbc.Driver"
  6. maxIdle="2"
  7. maxWait="5000"
  8. username="root"
  9. password="123456"
  10. url="jdbc:mysql://localhost:3306/appdb"
  11. maxActive="4"/>
  12. </Context>

其他配置同第一种方式。

第三种:局部配置。

1)在项目的META-INFO下面新建context.xml。加入:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Context>
  3. <Resource name="jndi/mybatis"
  4. auth="Container"
  5. type="javax.sql.DataSource"
  6. driverClassName="com.mysql.jdbc.Driver"
  7. url="jdbc:mysql://localhost:3306/appdb"
  8. username="root"
  9. password="123456"
  10. maxActive="20"
  11. maxIdle="10"
  12. maxWait="10000"/>
  13. </Context>

其他配置同第一种方式。

总结:如果要配置局部的话,推荐使用第三种方式,这样不依赖tomcat了。但是还是推荐使用第一种方式好,虽然依赖tomat,但是是全局的,而且可以配置
多个。对于以后切换使用方便。
在项目的web.xml中添加的资源引用可有可无。

tomcat下jndi的三种配置方式的更多相关文章

  1. 【转】tomcat下jndi的三种配置方式

    jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用 ...

  2. IIS下PHP的三种配置方式比较

    在Windows IIS 6.0下配置PHP,通常有CGI.ISAPI和FastCGI三种配置方式,这三种模式都可以在IIS 6.0下成功运行,下面我就讲一下这三种方式配置的区别和性能上的差异. 1. ...

  3. 在Tomcat下部属项目三种方式:

    在Tomcat下部属项目三种方式:       1直接复制:       2. 通过配置虚拟路径的方式    直接修改配置文件 写到tomcat/conf/server.xml     找到<H ...

  4. 【jdbc】【c3p0】c3p0三种配置方式【整理】

    c3p0三种配置方式 c3p0的配置方式分为三种,分别是1.setters一个个地设置各个配置项2.类路径下提供一个c3p0.properties文件3.类路径下提供一个c3p0-config.xml ...

  5. spring Bean的三种配置方式

    Spring Bean有三种配置方式: 传统的XML配置方式 基于注解的配置 基于类的Java Config 添加spring的maven repository <dependency> ...

  6. MyEclipse中web服务器的三种配置方式

    初学Javaweb开发的人们都会遇到一个问题,就是服务器环境的搭建配置问题.下面介绍三种服务器的搭建方式. 直接修改server.xml文件 当你写了一个web应用程序(jsp/servlet),想通 ...

  7. Hive metastore三种配置方式

    http://blog.csdn.net/reesun/article/details/8556078 Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储.远端存储比较适 ...

  8. c3p0三种配置方式(automaticTestTable)

    c3p0的配置方式分为三种,分别是http://my.oschina.net/lyzg/blog/551331.setters一个个地设置各个配置项2.类路径下提供一个c3p0.properties文 ...

  9. 【c3p0】 C3P0的三种配置方式以及基本配置项详解

    数据库连接池C3P0框架是个非常优异的开源jar,高性能的管理着数据源,这里只讨论程序本身负责数据源,不讨论容器管理. ---------------------------------------- ...

随机推荐

  1. function的prototype

    prototype只有function才有的属性. var a = function() { this.age = 12; this.name = "haha"; }; a.pro ...

  2. 【算法】E.W.Dijkstra算术表达式求值

    算术表达式求值 我们要学习的一个栈的用例同时也是展示泛型的应用的一个经典例子,就是用来计算算术表达式的值,例如 ( 1 + ( ( 2 + 3 ) * ( 4 * 5 ) ) ) 如果将4乘以5,把3 ...

  3. Unity 处理策划的 Excel

    很多时候我们需要使用策划的Excel表来做游戏的静态数据配置, 而不是采用自己定义的xml或者U3D的scriptobject. 因为很多数据都是策划处理的,而策划最喜欢的就是excel,也只会用这个 ...

  4. Unity3D 错误,nativeVideoFrameCallback解决方法。

    原地址:http://blog.csdn.net/alking_sun/article/details/23684733 Unity3D在打包安卓应用的时候,一打开游戏就闪退,接入LogCat之后发现 ...

  5. 采用Asp.Net的Forms身份验证时,持久Cookie的过期时间会自动扩展

    原文:http://www.cnblogs.com/sanshi/archive/2012/06/22/2558476.html 若是持久Cookie,Cookie的有效期Expiration属性有当 ...

  6. 【基本算法】 KMP文本串模式串的字符串匹配算法

    看了两个晚上的KMP,加上基本的“暴力匹配” 今晚看懂next[j]递归求解时,突然觉得算法真的好美妙,虽然觉悟的晚但晚胜过没有是吧! 我的博客都是应试性的学习笔记,不具备指导性,还是大神们写的好,例 ...

  7. RDLC报表BC4000错误

    如果RDLC报表报 BC4000错误,那是因为在矩阵外上面添加了文本框的缘故,导致系统不能读到RDLC报表表体,告诉你报表没有定义: 解决办法: 把表头文字放入矩阵中.

  8. mysql 存储过程事务支持回滚

    如图查看表的属性: InnoDB 支持事务. MyISAM 不支持事务,不过性能更优越.

  9. js小技巧(二)

    //移动的图层,拖动 1.<span style='position:absolute;width:200;height:200;background:red' onmousedown=Mous ...

  10. eq相等 ,ne、neq不相等 EL表达式

    eq相等,ne.neq不相等, gt大于, lt小于 gte.ge大于等于   lte.le 小于等于   not非   mod求模   is [not] div by是否能被某数整除   is [n ...