一、试验环境:
OS: Windows XP
Eclipse 3.4.2
JDK:1.6.0_10-rc2
二、所需软件
1、fscontext-1_2-beta3.zip:fscontext.jar,providerutil.jar
2、jdk版本低于Java 2 SDK, v1.3的,需要JNDI software
下载地址:https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=7110-jndi-1.2.1-oth-JPR@CDS-CDS_Developer
三、试验内容
创建一个JDNI文件系统的Context;并在此Context种试验JNDI的各种方法。
四、试验步骤
(一)、搭建JNDI应用环境
1、创建一个工程,引入fscontext.jar,providerutil.jar
2、jdk版本低于Java 2 SDK, v1.3的,需映入JNDI 相关的jar文件
3、创建一个Java文件,编码:
Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory"); //manually create the ROOT DIR env.put(Context.PROVIDER_URL, "file:/D:/JNDI/"); try { Context ctx = new InitialContext(env); catch (NamingException e) { e.printStackTrace(); }
(二)、试验JDNI应用
略
五、说明
1、在JNDI应用之前需要做的两个准备工作:JNDI software(jdk版本低于Java 2 SDK, v1.3时)、JNDI Server Provider software
2、步骤1中引入的两个jar包将作为JNDI Server Provider,类似的在MQ应用中,执行JMSAdmin相关命令也是创建一个JNDI Server Provider,详见《使用【WebSphere MQ JMS administration tool】工具创建JNDI命名空间》http://blog.csdn.net/huyangleng123。
3、参考文档:jndi-1_4_2-tutorial
(https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=7110-jndi-1.2.1-oth-JPR@CDS-CDS_Developer)
六、About JNDI(此为个人理解,不对之处还望指正)
JNDI —— java naming and directory interface,是一组API.使用这组API可以创建和管理命名空间和相关的名字资源。
Naming Spacie —— 所谓的命名空间物理上可以理解为:一个映射了名字和对应对象(资源)内容的定义文件,此文件以.bindings为名;需要使用context对象对命名空间的各个命名进行操作。
Context —— 即所谓的上下文环境,由JNDI Server Provider创建和维护。
JNDI Server Provider —— JNDI服务提供方。也是一组API,他负责来对应的Context。 例如此试验用到的fscontext, 是一个文件系统JNDI Server Provider,它提供的com.sun.jndi.fscontext.RefFSContextFactory可用于创建JNDI的Context。