首先我们先写一个简单的JSP页面,并且部署到WebLogic服务器中来执行绑定的操作。这个JSP页面主要是将java.util.Date()对象与jndi_date这个名字进行绑定。代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
String jndiTest = "jndi_date";
javax.naming.Context ctx = new javax.naming.InitialContext();
java.util.Date date = new java.util.Date();
ctx.rebind(jndiTest, date);
out.println("<h1>bind successfully</h1>");
%>
</body>
</html>
将整个项目部署到WebLogic上,运行该JSP页面,页面会提示绑定成功。进入WebLogic的管理控制台,查看JNDI树结构,发现jndi_date的设置信息。如下图:
通过查看WebLogic的树结构,我们发现jndi_date已经和 java.util.Date对象绑定,这样我们写一个客户端程序通过JNDI来��用java.util.Date对象。
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Test {
public static void main(String[] args) throws NamingException{
String INIT_FACTORY = "weblogic.jndi.WLInitialContextFactory";
String WL_URL = "t3://localhost:7001";
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, INIT_FACTORY);
env.put(Context.PROVIDER_URL, WL_URL);
Context ctx = new InitialContext(env);
Object obj = ctx.lookup("jndi_date");
System.out.println(obj);
}
}
上面的程序先创建了一个Context对象,然后通过Context对象去查找JNDI名为jndi_date的对象,运行后输出结果:Mon Aug 25 19:10:39 CST 2014。
正如上面程序所看到的,一旦将程序中的某个对象绑定到JNDI之后,就相当于为这个对象取了一个全局的名称,允许其他程序通过该名称来访问该对象。