日期:2014-05-18  浏览次数:20831 次

请教一个关于jndi和所谓的初始化上下文的问题
jndi我理解的就是把名称和对象绑定在一起。但是有没有更深层的含义呢,我感觉我理解的太肤浅了,并外还有一个非常重要的上下文和初始化上下文。也就是
Context和InitialContext到底是什么东西,是一个文件还是一个目录,如果是一个文件那么文件应该怎么定义,如果是一个目录那么这个目录应该怎么怎么确定
还有下面的这句话是什么意思
Hashtable   env   =   new   Hashtable(11);
                env.put(Context.INITIAL_CONTEXT_FACTORY,
                        "weblogic.jndi.WLInitialContextFactory ");
                env.put(Context.PROVIDER_URL, "t3://202.112.146.40:7001 ");
Context   ctx   =   new   InitialContext(env);
put这个方法里面的参数Context.INITIAL_CONTEXT_FACTORY这个参数是干什么呢?
后面的weblogic.jndi.WLInitialContextFactory是什么?下面的Context.PROVIDER_URL和后面的参数又是什么意思呢?
还有为什么把env这个作为InitialContext构造函数的参数呢?
分数不多了   希望大家能解答   共同进步   真好不好意思   可是我研究好久了都没有研究明白   抱歉


------解决方案--------------------
没有人回答 我来吧

Context和InitialContext 不是文件 也不是目录树

只是提供你一个操作JNDI目录树的入口

通过它 你可以搜索JNDI的目录树 得到已绑定的对象引用


Context.INITIAL_CONTEXT_FACTORY

指定JNDI的实现类 JNDI只是一个规范,实际上的实现肯定是各个厂家的产品
可以用JDBC的驱动 类比来理解


Context.PROVIDER_URL 就是JNDI服务提供者的url 也可以类比JDBC 数据库的服务器url

env里面存放了JNDI完成初始化的所有的必须信息

当然要把这个env传给构造函数



------解决方案--------------------
jndi:java naming & directory interface(java命名和目录接口服务),使用在高级网络应用开发中的。
目录是一种特殊的数据库,它提供了对数据存储的快速访问方式。
在传统上,把数据库看成是关系型数据存储模型,但是目录数据库是按照层次结构来存储信息的。
命名服务为一组给定的数据提供创建标准名字的服务。除了加入,改变或删除,不允许在服务中查找和操作对象。

初始化上下文InitialContext()可以理解为获得服务器容器的接口,有了这个接口,就能够访问容器提供的资源、服务等等...