首页 > 解决方案 > 使用 UnboundID LDAP SDK api 的 Java 问题(带参数调用方法)

问题描述

我正在为我的 LDAP 服务器使用 UnboundID LDAP SDK。我做了一个连接方法。

public static LDAPConnection connectSDK(String ip, Integer port, String id, String pw) throws LDAPException    {

    LDAPConnection ldap = new LDAPConnection(ip,port,id,pw);
    System.out.println("success");  
    return ldap;

}

在我的主要方法中,我用参数调用这个方法,它工作正常。

public static void main(String[] args) throws LDAPException {

    connectSDK("192.168.0.60",389,"******","*****");

}   

我想更进一步。我制作了一种使用过滤器搜索数据的方法。

public static void searchSDK(String filter) throws LDAPException {

    LDAPConnection ldap = connectSDK(); 

/* Before calling a method with parameter, I used to connect with this,
 and use 'ldap' variable to put search results. 
Now, I am using a method with parameters. 
I don't know what to do with 'ldap' variable. 
If I delete it, 'SearchRequest' doesn't run.  
Also how can I continue to use the connection from connectSDK method? */

    SearchRequest searchRequest = new SearchRequest("c=kr",SearchScope.SUB,filter);
    SearchResult searchResult = ldap.search(searchRequest);
    System.out.println(searchResult);

}

最终,我想在我的 main 中调用其中两个方法,如下所示。

public static void main(String[] args) throws LDAPException {
    //connect
    connectSDK("192.168.0.60",389,"*****","******");
    //search using a filter 
    searchSDK("hotdog");
}  

我想在我的 searchSDK() 方法中得到建议。
*1) 如何使用创建的会话 connectSDK 方法
*2) 如何处理 'ldap' 变量。
*3) ldap.close() 我想在之后关闭会话,但是这种方法不起作用。还有其他方法吗?

标签: javaldapunboundid-ldap-sdk

解决方案


您的代码中没有这样的方法LDAPConnection ldap = connectSDK();AsconnectSDK(String ip, Integer port, String id, String pw)返回 aLDAPConnection然后将其作为参数传入并从中searchSDK删除。connectSDK()

修改代码为

public static void searchSDK(String filter, LDAPConnection ldap) throws LDAPException {

    // LDAPConnection ldap = connectSDK(); 
....
}

所以你的主要看起来像

LDAPConnection ldap = connectSDK("192.168.0.60",389,"*****","******");
//search using a filter 
searchSDK("hotdog", ldap);

推荐阅读