通过Java API

时间:2015-07-17 22:07:09

标签: java lotus-domino

我正在尝试使用Domino Java API访问/查询Domino目录,并对此问题提出疑问 -

这是我的设置 -

  1. 我正在创建一个使用Java Domino API与Domino服务器接口的应用程序
  2. 我的Java应用程序驻留在自己的服务器上,并使用Java API(通过DIIOP)与Domino服务器通信
  3. 我环境中的Domino服务器版本是9.0
  4. 环境中有多个Domino服务器,用户邮箱分布在这些Domino服务器上
  5. 我的应用程序从外部源接收电子邮件地址和消息ID作为输入。根据此输入,我的应用程序需要从用户的邮箱中删除邮件。
  6. 我坚持了什么 - 我想查询Domino目录服务器以识别用户的邮件服务器名称和邮件文件名(使用电子邮件地址),以便我的应用程序可以打开用户的邮件文件,然后从中删除相应的邮件用户的邮箱文件。

    在我研究这个时,我找到了类/方法Directory.lookupNames()方法,可用于查询用户的目录。

    此方法是否允许根据电子邮件地址搜索用户,还是仅根据用户的名称进行搜索?

    我尝试通过调用Session.getDirectory()方法测试上述方法,但它会抛出NotesException - "Not implemented".请参阅下面的代码片段。 Session对象是有效的(经过身份验证的)Session对象。我在这里缺少什么?

    我是否应该使用其他方法/方法从Domino服务器查询用户?

    以下是我的代码段 -

    private static boolean queryDirectory(Session dominoSession) {
        try {
            Directory dirDomino = dominoSession.getDirectory(null); 
            DirectoryNavigator dirNavigator = dirDomino.lookupNames("People", "John", "email");
            boolean bMatchFound = dirNavigator.findFirstMatch();
            while (true == bMatchFound) {
                String strValue = (String)dirNavigator.getFirstItemValue().get(0);
                System.out.println("Value - " + strValue);
                bMatchFound = dirNavigator.findNextMatch();             
            }
        }
        catch(NotesException exc) {
            exc.printStackTrace();
            return false;
        }
        catch(Exception exc) {
            exc.printStackTrace();
            return false;
        }
    
        return true;
    }
    

0 个答案:

没有答案