有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用未绑定LDAP SDK api的Java问题(使用参数调用方法)

我正在为我的LDAP服务器使用未绑定的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;

}

在我的main方法中,我使用参数调用这个方法,它工作得很好

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()我想在之后关闭会话,但此方法不起作用。还有别的办法吗


共 (1) 个答案

  1. # 1 楼答案

    在您的代码LDAPConnection ldap = connectSDK();中没有这样的方法,因为connectSDK(String ip, Integer port, String id, String pw)返回一个LDAPConnection,然后将其作为参数传递到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);