`

tomcat配置jndi的三种方法

阅读更多
大致的有以下三种配置方式:

第一种:

1在tomcat的conf文件夹下的context.xml配置文件</Context>中加入:
<Resource name="jndi/demo" 
				auth="Container" 
				type="javax.sql.DataSource" 
				driverClassName="oracle.jdbc.driver.OracleDriver" 
				url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" 
				username="scott" 
				password="tiger" 
				maxActive="20" 
				maxIdle="10" 
				maxWait="10000"/>


2在项目的web.xml中加入资源引用:
<resource-ref>
  <description>JNDI DataSource</description>
  <res-ref-name>jndi/demo</res-ref-name>
  <res-ref-type>javax.sql.DataSource</res-ref-type>
  <res-auth>Container</res-auth>
</resource-ref>

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



3)jndi测试方法:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class TestJNDI{
	
	public void testJNDI() throws NamingException, SQLException{
		Context ctx = new InitialContext();
		DataSource ds = (DataSource) ctx.lookup("java:comp/env/jndi/demo");
		Connection conn = ds.getConnection();
		Statement statement = conn.createStatement();
		ResultSet rs = statement.executeQuery("select * from emp");
		while(rs.next()){
			System.out.println(rs.getString(1)+","+rs.getString(2));
		}
	}
	
}


4)在serlvet或者jsp页面中可以直接调用,注意:要在容器内调用:
   
		TestJNDI.testJNDI();
   



第二种:

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

<Context path="/demoJndi" docBase="/demoJndi">
		   <Resource name="jndi/demo" 
				auth="Container" 
				type="javax.sql.DataSource" 
				driverClassName="oracle.jdbc.driver.OracleDriver" 
				url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" 
				username="scott" 
				password="tiger" 
				maxActive="20" 
				maxIdle="10" 
				maxWait="10000"/>
		</Context>

其他配置同第一种方式。


第三种:局部配置。

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

<?xml version="1.0" encoding="UTF-8"?>
<Context>
	<Resource name="jndi/demo" 
				auth="Container" 
				type="javax.sql.DataSource" 
				driverClassName="oracle.jdbc.driver.OracleDriver" 
				url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" 
				username="scott" 
				password="tiger" 
				maxActive="20" 
				maxIdle="10" 
				maxWait="10000"/>	
</Context>

其他配置同第一种方式。

总结:
第一种方式依赖tomat,是全局的,而且可以配置多个。
二三两种不依赖tomcat,是局部的,推荐使用第三种方式.
7
2
分享到:
评论
4 楼 jadethao 2012-11-13  
arong 写道
第三种方式,需要没个应用都要配置,不方便吧,没看到好处。

第三种是局部的。
3 楼 jadethao 2012-11-13  
嗯 当你使用不同的数据库时 都是需要修改配置的。
2 楼 bf2624 2012-11-13  
每个应用的配置都不一样,即使在tomcat里面配也需要改。
1 楼 arong 2012-11-13  
第三种方式,需要没个应用都要配置,不方便吧,没看到好处。

相关推荐

Global site tag (gtag.js) - Google Analytics