我正在使用 InitialLdapContext 来搜索 Ldap 目录。 虽然它表现得很奇怪 - 如果我连续运行1-5次搜索查询,它的工作正常,立即返回一个答案,但是如果我运行它的次数突然没有返回,并挂起直到超时。
但是,如果我尝试通过 Ldap客户端为 JXplorer 做同样的事情,它永远不会给我超时..这意味着我的身体有问题代码。
另外,我不确定它是否与我设置的超时有关。我尝试了5秒超时和15秒超时,偶尔它会等待更多。
以下是代码示例:
Hashtable<String,Object> env = new Hashtable<>();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "my url");
env.put(Context.SECURITY_AUTHENTICATION, "none");
env.put("com.sun.jndi.ldap.connect.timeout", "5000");
InitialLdapContext context = new InitialLdapContext(env,null);
NamingEnumeration<SearchResult> me = context.search("cn=*,cn=nfs,ou=policy,ou=Service,dc=doo,dc=myorg,dc=com",
FILTER_WITH_DEPTH.replace("replaceMe", String.valueOf(4)), getSimpleSearchControls());
me.hasMore();
me.close();
我做错了什么?