我收到此错误:"LDAPSearchException: size limit exceeded" error,服务器仅返回500个结果。我们经验丰富的LDAP管理员向我保证,服务器上未设置此限制。实际上,通过在CLI上使用“ ldapsearch”,我可以获得500多个结果。

本文LDAPException Size Limit exceeded中的建议正是我所需要的。但是,当我尝试在LDAPConnection对象(ld.setSearchConstraints(ldsc);)上设置LDAPSearchConstraints对象时,出现编译错误,提示该方法不存在:

cannot find symbol
symbol  : method setSearchConstraints(com.unboundid.ldap.sdk.migrate.ldapjdk.LDAPSearchConstraints)
location: class com.unboundid.ldap.sdk.LDAPConnection.


有人知道为什么这种方法不可用吗?我尝试了不同版本的unboundid-ldapsdk,甚至尝试了pom文件中的不同存储库。另外,如果有人知道如何使用其他方法来检索默认搜索结果以外的内容,请告诉我。

我正在使用64位linux(版本:“ 3.2.0-4-amd64”)和Apache Maven 2.2.1(rdebian-8)
Java版本:1.6.0_31

最佳答案

看了API之后,限制搜索结果的正确方法是

com.unboundid.ldap.sdk.LDAPConnection connection = <some connection>

com.unboundid.ldap.sdk.SearchRequest request = new SearchRequest(<your parameters>);
request.setSizeLimit(<your limit>);

SearchResult result = connection.search(request);


发生编译错误,因为您导入错误的LDAPConnection。

com.unboundid.ldap.sdk.migrate.ldapjdk.LDAPConnection setSearchConstraints

com.unboundid.ldap.sdk.LDAPConnection setSearchConstraints的此类

10-07 20:14