0
나는 unboundid-ldapsdk-3.1.1을 사용 중이며 SimplePagedResultsControl
을 사용하여 항목을 반복하려고합니다. 여기 페이징 된 컨트롤을 사용한 검색 LDAPSearchException
...
searchRequest = new SearchRequest(dn, scope.getLdapSearchScope(), filter);
ASN1OctetString resumeCookie = null;
while (true)
{
searchRequest.setControls(new Control[] { new SimplePagedResultsControl(searchLimit, resumeCookie) });
setControls(searchRequest, controls);
searchResult = getConnectionPool().search(searchRequest);
numSearches++;
totalEntriesReturned += searchResult.getEntryCount();
for (SearchResultEntry e : searchResult.getSearchEntries()) {
// Do something with each entry...
}
LDAPTestUtils.assertHasControl(searchResult, SimplePagedResultsControl.PAGED_RESULTS_OID);
try {
SimplePagedResultsControl responseControl = SimplePagedResultsControl.get(searchResult);
if (responseControl.moreResultsToReturn())
resumeCookie = responseControl.getCookie();
else
break;
} catch (LDAPException ex) {
log.error("Error while accessing cookies" + ex.getMessage());
}
}
및 searchLimit는 100 : 첫 번째 반복에서 responseControl.moreResultsToReturn()
반환 true
을하고, 두 번째에서 반복 getConnectionPool().search(searchRequest);
이 던졌습니다. LDAPSearchException(resultCode=2 (protocol error), numEntries=0, numReferences=0, errorMessage='paged results cookie is invalid')
내 코드에 문제가있을 수 있습니까?
풀에 대한 연결 후속 요청에서 풀과 다른 연결을 사용합니다. –
실제로 문제는 두 번째 반복에서 다른 연결이 사용되었다는 것입니다. 해답으로 게시 해주세요. 감사 드리겠습니다. 감사합니다. – eparvan