JAVA系统和DOMINO通过LDAP集成方
LDAP是标准轻量目录访问协议(Lightweight Directory Access Protocol),通过LDAP,你可以访问目录中的用户信息,进行用户验证。DominoR5/6支持标准的LDAP v3目录服务。本文通过描述使用JNDI访问Domino目录的过程,为大家介绍如何充分利用机构中已有的Domino目录资源。本文所述的方法也适用于其他支持LDAP v3的目录服务器。
为什么目录服务如此重要
随着企业中应用程序的增加,我们不得不面对日益增长的各类用户数据。这些用户数据分布在企业各处,带来了很大管理和维护上的麻烦。为了解决这个问题,我们通常需要在企业中构建标准的目录基础设施。同时,在实施EAI(企业应用集成)时,我们还经常会遇到用户需要单点登录(SSO)的情况,而成功实施SSO 的基础是我们有一个好的目录基础。
目前,在很多的机构中都实施了基于Domino的应用,例如:办公、邮件、审批等。做为一个兼容各种标准的优秀平台,Domino也提供了对LDAP v3的良好支持。
那么,对于已经架设Domino基础设施的机构,是否考虑从现有的投资中获得更多的回报呢?下面,我们通过两个范例来了解如何充分利用这些保存在Domino中的目录资源。
准备工作
1、 了解JNDI
JNDI(Java Naming And Directory Interface)是在Java中访问各种命名和目录服务的规范。它通过一组扩展的API:javax.naming.*来提供对命名和目录服务的访问。
使用JNDI前,你必须确保你拥有jndi.jar,并且在当前ClassPath中包含它。如果你还没有jndi.jar,可通过参考资料处下载。
2、 配置Domino服务器
在使用下列范例前,你必须先启动你的Domino服务器(我使用R6版本)中,并且启用LDAP服务。
由于我们不需要使用任何特殊的选项,我们无须对Domino的LDAP配置做出任何修改,仅须确认已加载了LDAP服务(在Domino Console上输入:show tasks来查看是否加载了LDAP服务)。如果还没有加载LDAP服务,你可以通过在Domino的服务器控制台上输入:load ldap来加载它。
读取目录信息
下面的代码从目录中读取给定用户的邮件地址。
package net.eservice4you.ldap;
import javax.naming.Context;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.DirContext;
import javax.naming.directory.Attributes;
import javax.naming.NamingException;
import java.util.Hashtable;
class Getattr {
public static void main(String[] args) {
// Identify service provider to
相关文档:
1 日志级别
oFATAL
记录影响系统正常运行,可能导致系统崩溃的事件
oERROR
记录影响业务流程正常进行,导致业务流程提前终止的事件
oWARN
记录未预料到,可能导致业务流程无法进行的事件
oINFO
记录系统启动/停止,模块加载/卸载之类事件
oDEBUG
记录业务详细流程,用户鉴权/业务流程选择/数据存取事件
oTRACE
......
管理 Java 类路径(UNIX 和 Mac OS X)
网址: http://www.ibm.com/developerworks/cn/java/j-classpath-unix/
作者的网站:http://www.cafeaulait.org/
总结:
不管类路径有多么棘手,您都可以通过一些简单的规则对它加以管制,尤其是要记住如下的一些原则:
将类放到包中。
严格遵守包和类的命名约定 ......
1、如何将字符串String转化为整数int
int i = Integer.parseInt(str);
int i = Integer.valueOf(my_str).intValue();
注: 字串转成Double, Float, Long的方法大同小异。
2、如何将字符串String转化为Integer
Integer integer=Integer.valueOf(i)
3、如何将整数 ......
一共有三个类:WriteFile ; ReadFile ; InsertDB ;
//WriteFile.java
//用于将信息写入文本文件
package org.mb.insertfromfile;
import java.io.*;
public class WriteFile{
private int count = 0 ;
public int getCount() {
return count;
}
public void setCount(int count) {
this.cou ......