jndi step by step (2) 准备条件

1、准备工作
     1.1 需要的软件环境
       
         现在我们都已经都使用java 1.4 版本了,或者更高的版本,所以,java的版本这就不详细说了。
        
         服务提供商(Service Provider Software)。从之前的jndi架构图可以知道,针对不同的jndi服务,我们会需要不同的SPI,这个
         SPI就是服务提供商(Service Provider Software)提供的接口。
         在这个教程里,我们主要使用以下两个 SPI:
         1) 文件系统的jndi SPI
         2) LDAP的 jndi SPI
         你可以在 http://java.sun.com/products/jndi/serviceproviders.html 找到相应的SPI,然后下载。

         命名和目录服务器。在这个文档里,我们会以LDAP为例子来介绍,你可以在 http://www.openldap.org/ 下载免费的LDAP服务器。

     1.2 初始化内容上下文(Initial Context)
 
         在使用任何命名或者目录服务的操作之前,你都必须初始化内容上下文--这是一个起点,这是因为所有的操作,都必须基于一个
         特定的内容上下文才可以。初始化内容上下文,你必须遵守以下的步骤:
         1) 选择好 服务提供商(Service Provider Software)
         2) 确定一些初始化的配置
         3) 调用 InitialContext 这个构造函数。

         选择好 服务提供商(Service Provider Software)。
         你可以使用以下的方法来实现这个功能:

                  

java 代码

 

  1. Hashtable env = new Hashtable();   
  2.   env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");   
  3.   

         上面那个例子是LDAP的,你也可以使用文件系统的,看下面的例子:

java 代码
  1. Hashtable env = new Hashtable();   
  2. env.put   
  3. (Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");   

 
         

 

         当然有的SPI可能需要更多的配置信息,例如:

        

 

java 代码

 

  1. env.put(Context.PROVIDER_URL, "ldap://ldap.wiz.com:389");   
  2. env.put(Context.SECURITY_PRINCIPAL, "joeuser");   
  3. env.put(Context.SECURITY_CREDENTIALS, "joepassword");  

  对于文件系统的SPI,可能有如下的配置:

 

 

java 代码

 

  1. env.put(Context.PROVIDER_URL, "file:/tmp/tutorial/");  

  那么如何初始化内容上下文?使用下面的方式:

        

 

java 代码

 

  1. Context ctx = new InitialContext(env);  

  为了访问目录服务,你应该换一个初始化方式:

 

  1. DirContext ctx = new InitialDirContext(env);  

 

 

java 代码
         可见不同的环境中,我们使用的SPI也是不同的。
         这些配置你也可以放到属性配置文件( .properties )里,在高级应用中我们再讨论。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值