JNDI

原创
2012/05/26 16:46
阅读数 427

JNDI

创建上下文的两种方式:

1.通过创建一个Properties对象,设置Context.PROVIDER_UR,Context.InitialContextFactroy等等属性

创建InitialContext 例如:

Properties p = new Properties();
//指定服务提供者
p.put(Cotnext.PROVIDER_URL, "localhost:1099");
//InitialContext的初始化工厂类(这个类在实际应用中应该是由第三方提供?)
p.put(Context.InitialContextFactroy, "com.sun.InitialContextFactory ");
//使用以上提供的环境构造一个初始上下文
Context context = new InitialContext(p)

2.通过jndi.properties文件创建初始上下文

java.naming.factory.initial=com.sun.NamingContextFactory

java.naming.provider.url=localhost:1099

如果直接创建初始上下文,如下:

InitialContext   ctx   =   new   InitialContext();

InitialContext的构造器会在类路径中找jndi.properties文件,如果找到,通过里面的属性,创建初始上下文。

所以从上面可以看出,两种方式完成的目标是相同的。

命名服务提供(名称—对象)的映射。

目录服务提供有关对象的信息,并提供定位这些对象所需的搜索工具。

注:JNDI NAME要在前面加上"java:comp/env/"

为了在J2SE下使用JNDI,我们首先得到sun的网站上下载3个包:

jndi.jar —— 提供JNDI服务的接口

fscontext.jar,providerutil.jar —— 用文件系统作为JNDI服务器的支持包

/**
*使用文件系统作为JNDI服务器
*/
Properties prop = new Properties();
/** 初始化工厂*/
prop.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");  
/** JNDIROOT是应用根目录下的文件夹,用作JNDI服务器,*/
prop.put(Context.PROVIDER_URL, "file:JNDIROOT");
Context context = new InitialContext(prop);

   

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部