欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

JNDI技术及其使用方法(图文)

时间:2011-04-23  作者:秩名

论文导读:在JavaEE项目中,各种应用组件种类繁多,其中JNDI(JavaNamingandDirectoryInterface,Java命名和目录接口)是使用JavaEE各种服务的基础。本文将对JNDI的结构进行分析,以及通过实例阐述其使用方法。
关键词:JNDI,使用方法
 

引言

JNDI分为命名服务和目录服务两部分。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。类比一下,命名服务就是一个电话簿或是一本字典。而命名服务中的对象是可以多样化的,他可以是域名系统中的名称、应用服务器中的组件或某些必要的环境变量等。目录服务是命名服务的自然扩展,两者之间的关键差别是目录服务中的对象可以有属性(例如,用户用email地址),而命名服务中的对象没有属性。因此,在目录服务中,你可以根据属性搜索对象。命名或目录服务是你可以集中存储共有信息,这一点在网络应用中是重要的,因为这使得这样的应用更协调、更容易管理。例如,可以将打印机设置存储在目录服务中,以便被与打印机有关的应用使用。JNDI允许我们访问文件系统中的文件,定位远程RMI注册的对象,访问像LDAP(LightweightDirectory Access Protocol)这样的目录服务,定位网络上的EJB组件。下面我们从JNDI的结构谈起。

1.JNDI的结构

图1 :JNDI体系结构

JNDI从结构上提供了标准的独立于命名系统的API,这些API构建在与命名系统有关的驱动之上。这一层有助于将应用与实际数据源分离,因此不管应用访问的是LDAP(Lightweight DirectoryAccess Protocol)、RMI(Remote MethodInvocation)、DNS,还是其他的目录服务。换句话说,JNDI独立于目录服务的具体体现,只要你有目录的服务提供接口(或驱动),你就可以使用目录。

关于JNDI要注意的一点是,它提供了应用编程接口(Application Programming Interface,API)和服务提供者接口(Service ProviderInterface,SPI)。这一点的真正含义是,要让你的应用与命名服务或目录服务交互,必须有这个服务的JNDI服务提供者,这正是JNDI SPI发挥作用的地方。服务提供着基本上是一组类,这些类为各种具体的命名和目录服务实现了JNDI接口——很像JDBC驱动为各种具体的数据库实现了JDBC接口一样。作为一个应用开发着,你不必操心JNDISPI。你只需要确认你要使用的每一个命名或目录服务都有服务提供者。

2.使用JNDI进行程序开发

在Java EE开发中,JNDI主要用于保存一些经常用到的小对象或是一些只读属性。一个JNDI树包括几个要素:(1)Content:JNDI树中的一个节点,可包含子节点和绑定的对象;(2)Root Content:JNDI树结构中最顶端的节点;(3)Initial Content:对JNDI操作的初始点;(4)Object:绑定在节点上的对象。

下面使用具体的实例给出Content接口的使用步骤:

(1)在Eclipse环境下建立JndiCase项目,建立Test.java文件,同时添加weblogic.jar文件到环境变量。注意,在weblogic环境下,weblogic.jar在WEBLOGIC_HOMEserverlib目录中。主要功能代码如下:

初始化JNDI属性:

Hashtable env= new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY,'weblogic.jndi.WLInitialContextFactory');

env.put(Context.PROVIDER_URL,'t3://localhost:7001');

Context ctx=new InitialContext(env);

上述代码片段的作用是,利用Hashtable来设置JNDI属性,从而得到InitialContext对象。

绑定(命名):

Date date=new Date();

ctx.rebind('date', date);

上述代码片段的作用是,把Date类型的对象date绑定到应用服务器中,并命名为date。

创建子节点:

Context subCtx=ctx.createSubcontext('test');

subCtx.rebind('date', date);

subCtx.rebind('username', '张三');

上述代码片段的作用是,给已创建的date节点绑定子节点username。

寻找节点:

Date date=(Date)ctx.lookup('date');

System.out.println('date:'+date);

上述代码片段的作用是,寻找应用服务器中名为date的节点,并输出其信息。

取消绑定(移除):

ctx.unbind('date');

上述代码片段的作用是,寻找应用服务器中名为date的节点,并取消绑定,即移除这个节点及其子节点。

(2)运行上述某一功能的代码。

(3)启动weblogic服务器,在weblogic的控制台下观察JNDI树。

(4)反复执行(2)(3)观察执行各功能的代码后,JNDI树的变化。

4.总结Content接口的常用方法

(1)bind(StringjndiName,Object o),将对象绑定到JNDI树。

(2)unbind(StringjndiName)Action,将对象从JNDI树中解绑定。

(3)lookup(StringjndiName),从JNDI树中查找对象。

(4)createSubcontext((StringsubContextName),创建子节点。

(5)rebind(StringjndiName,Object o),将对象重新绑定(先解绑定,再绑定)。


参考文献
1.《JNDI APITutorial and Reference》 作者: (美)Rosanna Lee, (美)Scott Seligman,出版社:Addison-Wesley LongmanPublishing Co., Inc. Boston, MA, USA(2000-2)
2. 《J2EE Applications and BEA WebLogic Server》作者:(美)Michael Girdley Rob Woolen Sandra L.Emerson,译者:邢国庆,电子工业出版社(2002-4)
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:Java软件保护技术研究
下一篇论文:Linux在嵌入式系统上的移植
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
    无相关信息
最新计算机论文
读者推荐的计算机论文