zoukankan      html  css  js  c++  java
  • tomcat下jndi的三种配置方式

     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.   
    7. }  


    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中添加的资源引用可有可无。

  • 相关阅读:
    tesseract动态库依赖关系
    面向对象分析与设计笔记(一)
    用例图笔记
    矩阵乘法求解
    二维数组 Visual Studio怎么监视
    cmake windows caffe cuda版本的切换
    Python入门
    Python基本数据类型
    【LabVIEW】二进制文件的存储与读取方法
    【LabVIEW】文件对话框点击取消后报错、实现自定义文件名
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/4487773.html
Copyright © 2011-2022 走看看