jndi有全局配置和局部配置。关于jndi的全局配置即是在web服务器下进行配置,例如:在tomcat的conf文件夹下的context.xml配置文件中加入相关的配置或在weblogic的管理控制台中配置相应的jndi数据源(本机安装了weblogic的话访问http://127.0.0.1:7001/console进入管理控制台配置相应的jndi数据源)。
下面重点说说在项目中jndi的局部配置与测试。
1、 在项目的META-INF下面新建context.xml。
加入配置信息,例如:
<?xml version='1.0' encoding='utf-8'?> <Context> <!-- Default set of monitored resources --> <Resource name="jdbc/birtReport" auth="Container" type="javax.sql.DataSource" maxActive="50" maxIdle="20" maxWait="2000" driverClassName="oracle.jdbc.OracleDriver" username="xxx" password="xxx" url="jdbc:oracle:thin:@ip:1521:instance name" /> </Context>
2、写测试类 ,例如:JNDITest.java
/**
* JNDI配置测试
*/
public class JNDITest {
public void testJNDI() throws NamingException, SQLException {
Context ctx = new InitialContext();
//web服务器是tomcat时:ctx.lookup("java:comp/env/jdbc/birtReport");
//web服务器是weblogic时:ctx.lookup("jdbc/birtReport");
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/birtReport");
Connection conn = ds.getConnection();
System.out.println(conn.isClosed());
}
}
3、 写测试的jsp,例如:jndiTest.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.apply.test.JNDITest"%>
<%
// 调用JNDITest类的testJNDI方法进行测试
JNDITest test = new JNDITest();
test.testJNDI();
out.println("connection pool connected !!");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jndi配置测试</title>
</head>
<body>
</body>
</html>
4、 访问该页面,测试jndi数据源是否能够正常访问:
见到页面输出"connection pool connected !! "表示数据源配置正确,并且能正确访问。