JNDI

jndi是sun公司提供的一种标准的java命名系统接口,jndi提供统一的客户端api,通过不同的访问提供者接口jndi spi的实现,由管理者将jndi api映射为特定的命名服务和目录系统,使得java应用程序可以和这些命名服务和目录服务之间进行交互。

我是在获取数据连接池资源时用到jndi的

环境tomcat6.0  j2ee

将需要的数据资源关联到项目web.xml中

<resource-ref>
   <description>MyDB Connection</description>
   <res-ref-name>jdbc/pooledDS</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
</resource-ref>

我的资源文件放在项目的META-INF下(此目录本事也是项目为扩充资源准备的)

<?xml version="1.0" encoding="UTF-8"?>
<Context  reloadable="true" crossContext="true">
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
  <Resource 
	name="jdbc/pooledDS"  							    
	auth="Container"    							    
 	driverClass="oracle.jdbc.driver.OracleDriver"  
 	user="sa"                                       
 	password="sa"	
 	factory="org.apache.naming.factory.BeanFactory"
        type="com.mchange.v2.c3p0.ComboPooledDataSource"  
 	jdbcUrl="jdbc:oracle:thin:@192.168.8.15:1521:suszmp"  								
 	 />
 </Context>

java调用的方法

String jndiName = "java:/comp/env/jdbc/pooledDS";
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup(jndiName);

 此处 java:/comp/env是jndi默认目录,资源文件的目录是/jdbc/pooledDS

  扩充阅读:http://www.cnblogs.com/chinafine/archive/2010/06/16/1759246.html   

                    http://www.cnblogs.com/chinafine/archive/2010/06/16/1759250.html

posted on 2013-06-27 11:00  it_code  阅读(325)  评论(0编辑  收藏  举报