tomcat下JNDI的配置和读取方法

来源:互联网 发布:在主函数前定义数组 编辑:程序博客网 时间:2024/05/21 12:39

 

JNDI名字与目录服务 是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。

 

 

一、TOMCAT5.0下的JNDI配置方法

如果要部署的是个WEB应用程序,则将该应用程序放在 $TOMCAT_HOME/webapps目录下,配置的JNDI数据源和读取jndi的方法如下(注意:要把连接数据库的驱动放在tomcat_home/common/lib下面

1、可以在TOMCAT_HOME/conf/Catalina/localhost下新建XXX.xml文件,XXX为所发布的WEB应用程序的名字,如我所发布的WEB应用程序是JndiTest,则.xml文件命名为JndiTest.xml,该文件内容为:

<?xml version='1.0' encoding='utf-8'?>

<Context debug="1" docBase="$Tomcat 5.0_Home/webapps/JndiTest(应用程序的存放的目录)" path="/JndiTest" reloadable="true" workDir="work/Catalina/localhost/JndiTest(应用程序编译后存放的位置)">

<Resource name="jdbc/test" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/test">

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>4</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>5000</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ObjectDataBaseName</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>

<parameter>

<name>username</name>

<value>DataBaseUserName</value>

</parameter>

<parameter>

<name>password</name>

<value>DataBasePassword</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>2</value>

</parameter>

</ResourceParams>

</Context>

 

 

二、TOMCAT5.5/6.0下的JNDI配置方法

将如下格式的Resource描述插入JndiTest.xml<Context></Context>中:

<Resource name="jdbc/test" <!-- JNDI名称 -->   

auth="Container" <!-- 此处和web.xml中对应 -->   

type="javax.sql.DataSource" <!-- 数据源类型 -->   

password="1234" <!-- 数据库访问密码 -->   

username="demo" <!-- 数据库访问用户名 -->   

driverClassName="oracle.jdbc.OracleDriver" <!-- 数据库驱动类 -->   

url="jdbc:oracle:thin:@127.0.0.1:1521:DEMO" <!-- 数据库访问url -->   

maxActive="100" <!-- 最大活动数 -->   

maxIdle="30"   

maxWait="5000" <!-- 最大等待时间 -->   

/>   

 

 

 

三、测试、

Java连接jndi的方法

 

Context ctx = new InitialContext();

Connection conn=null;

ctx = new InitialContext();

DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/test");

conn = ds.getConnection();

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from T_Test";(数据库查询语句)

ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {

out.println(rs.getString(1));

Syste.out.println(rs.getString(2));

System.out.println(rs.getString(3));

}
 rs.close();

stmt.close();

conn.close();

 

 

 

原创粉丝点击