(java 基础知识) java命名服务(JNDI)---javax.naming
来源:互联网 发布:09总决赛科比数据 编辑:程序博客网 时间:2024/05/11 12:23
1.JNDI(Java Naming Directory Interface),即Java命名目录接口,允许Java程序通过一个名称来访问真正的Java对象,JNDI消除了不同命名,目录服务之间的差异,允许应用程序采用一致的JNDI接口来调用各种命名,目录服务。JNDI体系结构如图(1-1)所示:
Java SE 在javax.naming包及其子包中定义了JNDI的API接口,在进行JNDI编程时,只需面向此API接口编程即可.JND包括了两组API:
--> JNDI API(Application Programming Interface)
--> JNDI SPI(Service Provider Interface)
JNDI API 为开发者提供的统一的接口,以一致的方式访问各种命名、目录服
务,而JNDI SPI则保证了各种命名、目录服务能够以透明的方式加入到JNDI
的结构中,Naming Manager则负责JNDI API 与 JNDI SPI两者之间的转
换。
2.登录http://www.oracle.com/technetwork/java/downloads-139965.html 页面,点击页面中的“Download JNDI 1.2&More”边上的download进入下载页面。将下载到的fscontext-1_2-beta3.zip压缩包解压后,在解压文件中的lib子目录下存在两个jar文件(fscontext.jar,providerutil.jar),将这两个文件加载到CLASSPATH环境变量之中。
3.编写一个java类进行测试,NameServiceTest.java代码如下所示:
- package net.hnspi.djj.nameservice ;
- import java.util.* ;
- import javax.naming.* ;
- public class NameServiceTest{
- public static void main(String args[]) throws NamingException {
- String filename01 = "hnspi.txt" ;
- String dirname = "hello" ;
- // 创建一个Hashtable对象,用于为Context设置初始化参数
- Hashtable<String,String> htable = new Hashtable<String,String>() ;
- // 为Hashtable添加内容,其中key对应的value为初始化Context的工厂类
- htable.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory") ;
- // 为Hashtable添加内容,其中key对应的value为Context服务提供者的url
- htable.put(Context.PROVIDER_URL,"file:/G:/testdemo") ;
- // 实例化Context对象,传入一个Hashtable的实例
- Context context = new InitialContext(htable) ;
- // 根据jndi名查找与之绑定的对象
- Object file01 = context.lookup(filename01) ;
- System.out.println(filename01 + "名称被绑定到--> " + file01) ;
- System.out.println("file01的类型是:" + file01.getClass()) ;
- // 根据jndi名查找与之绑定的对象
- Object dir = context.lookup(dirname) ;
- System.out.println(dirname + "名称被绑定到--> " + dir) ;
- System.out.println("dir的类型是:" + dir.getClass()) ;
- }
- }
package net.hnspi.djj.nameservice ;import java.util.* ; import javax.naming.* ; public class NameServiceTest{ public static void main(String args[]) throws NamingException { String filename01 = "hnspi.txt" ; String dirname = "hello" ; // 创建一个Hashtable对象,用于为Context设置初始化参数 Hashtable<String,String> htable = new Hashtable<String,String>() ; // 为Hashtable添加内容,其中key对应的value为初始化Context的工厂类 htable.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory") ; // 为Hashtable添加内容,其中key对应的value为Context服务提供者的url htable.put(Context.PROVIDER_URL,"file:/G:/testdemo") ; // 实例化Context对象,传入一个Hashtable的实例 Context context = new InitialContext(htable) ; // 根据jndi名查找与之绑定的对象 Object file01 = context.lookup(filename01) ; System.out.println(filename01 + "名称被绑定到--> " + file01) ; System.out.println("file01的类型是:" + file01.getClass()) ; // 根据jndi名查找与之绑定的对象 Object dir = context.lookup(dirname) ; System.out.println(dirname + "名称被绑定到--> " + dir) ; System.out.println("dir的类型是:" + dir.getClass()) ; }}
编译运行后,输出结果如下:
hnspi.txt名称被绑定到--> G:\testdemo\hnspi.txt
file01的类型是:class com.sun.jndi.fscontext.FSContext$FSFile
hello名称被绑定到--> com.sun.jndi.fscontext.RefFSContext@3a6727
dir的类型是:class com.sun.jndi.fscontext.RefFSContext
此时,表明可以通过Java程序通过JNDI名称访问指定文件系统中被绑定的对象。
- (java 基础知识) java命名服务(JNDI)---javax.naming
- javax.naming.NameNotFoundException (JNDI)
- JNDI(Java Naming Directory Interface)
- JNDI(Java Naming Directory Interface)
- JNDI JNDI(Java Naming and Directory Interface)
- JAVA命名和目录服务(JNDI)
- JAVA命名和目录服务(JNDI)
- JAVA命名和目录服务(JNDI)
- JAVA命名和目录服务(JNDI)
- Java命名和目录服务(JNDI)
- JNDI(The Java Naming and Directory Interface,Java命名和目录接口
- JNDI Java的目录和命名接口(JAVA NAMING AND DERECTORY INTERFACE)
- JNDI(Java Naming and Directory Interface,Java命名和目录接口)
- 关于jndi(Java Naming and Directory Interface)java的命名与目录实例的接口
- Java命名规范(Naming Conventions)
- JAVA命名规范(Naming Conventions)
- JNDI全称 Java Naming and Directory Interface
- JNDI (Java Naming and Directory Interface)
- Oracle数据库表的导入和导出
- MySQL5.6.13解压版(zip版)安装配置
- ajax浏览器兼容的问题
- 高难度领带结
- 冲击性的透明背景和汽车网站
- (java 基础知识) java命名服务(JNDI)---javax.naming
- a[0]变为a[1]到a[n-1]的积,a[1]变为a[0]和a[2]到a[n-1]的积,……a[n-1]为a[0]到a[n-2]的积。要求:具有线性复杂度。不能使用除法运算符。
- 把原文件01.mp3.lrc 替换成 01.lrc
- Hadoop 2.0 NameNode HA和Federation实践
- 关于DialogResult.OK的“通过实例访问共享成员、常量成员、枚举成员或嵌套类型;将不计算限定表达式”的警告问题
- Oracle安装体会
- 屏蔽webrowser頁面中的聲音
- windows7下php开发环境的配置
- org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.demo.pojo.IdCard