2014-04-23 1 views
0

페이지 번호 매김에서 정렬 된 순서로 검색하고 싶습니다. 동일한 나는 VirtualListViewRequestControl 사용하고 있습니다. 그것이 작동하지 않는 것 같아 가능한 모든 방법을 시도. 하지만 여전히 다음과 같은 오류가 발생합니다 : -unboundid VirtualListViewRequestControl이 작동하지 않습니다.

INFO : level = "INFO"threadID = 37 threadName = "연결 용 연결 판독기 8에서 10.96.186.240:389"개정 번호 = 15579 connectionID = 8 connectedTo = "10.96.186.240 : 389 "readLDAPResult ="SearchResult (resultCode = 76 (가상 목록보기 오류), messageID = 6, diagnosticMessage = '00002040 : SvcErr : DSID-031401ED, ​​문제 5010 (UNAVAIL_EXTENSION), 데이터 0', entriesReturned = -1, referencesReturned = -1, responseControls = {VirtualListViewResponseControl (targetPosition = 0, contentCount = 0, resultCode = 60, 정렬 컨트롤 누락)}) "

검색 요청에 VirtualListViewRequestControl을 추가하기 전에 virtualListViewControl을 지원하는 My Directory를 확인하고 있습니다. RootDSE가 도움이되지 않는다면 결과는 yes입니다. 나는 잘 작동하는 jndi로 시도한 같은 예제이다. 문서에서 unboundid 그들은 그것을 지원하지만 그것은 작동하지 않는 것 같아요. 여기

SearchRequest searchRequest = new SearchRequest("dc=mydomain,dc=com", 
      SearchScope.SUB, Filter.createEqualityFilter("objectClass", "person")); 

searchRequest.setControls(
      new ServerSideSortRequestControl(false, new SortKey("sn"), 
       new SortKey("givenName")), 
      new VirtualListViewRequestControl(vlvOffset, 0, 9, vlvContentCount, 
       vlvContextID, true)); 

SearchResult searchResult = connection.search(searchRequest); 

누군가가이 문제를 해결하는 나를 도울 수있는 몇 가지 샘플 코드입니다. 또는 솔루션을 찾을 수있는 곳으로 리디렉션하십시오.

답변

0

"Note that Active Directory supports only a single sort key"

즉 (새 ServerSideSortRequestControl (거짓, 새로운 SortKey ("SN"), 새로운 SortKey ("givenName과")),

만, jeemster 을 하나 SortKey. - 짐

+0

감사를 가질 수 여러 정렬 키를 제거한 후 잘 작동하고 있습니다. 그러나 정렬 특성 값이 디렉터리 unboundId 설정된 경우 관찰 할 수 없습니다. 레코드를 가져올 수 없습니다. 모든 포인터? 또한 경우에 따라 정렬하려면 cn, 다시 검색하지 못했습니다. ldapException (crirtical control이 지원되지 않음)을 반환합니다 ... 포인터가 있습니다 – lalit

+0

Nei 시도 나는 제안이야? – jwilleke

0

가상 목록보기 제어에 대한 UnboundID LDAP SDK의 지원은 다른 디렉토리 서버와도 올바르게 작동하므로 Active Directory (내가 사용하는 것으로 가정하는 서버의 경우)가 비정상적 일 수 있습니다. 오류 응답의 서식 지정)이 처리합니다.

오류 응답의 "정렬 제어 누락"부분이 요청에 적절한 제어 기능을 제공하고 있기 때문에 이상합니다. 아마도 Active Directory는 VLV 요청 컨트롤이 중요하지만 서버 쪽 정렬 요청 컨트롤이 좋지 않을 수도 있습니다. sort 컨트롤이 critical로 표시되도록 ServerSideSortRequestControl 생성자의 첫 번째 인수를 false에서 true로 변경해 보았습니까?

그래도 문제는 해결되지 않지만 JNDI와 동일한 요청이 작동하는 경우 JNDI와 UnboundID LDAP SDK에 대해 클라이언트와 서버간에 정확한 트래픽이 전달되는 것을 확인하는 것이 유용합니다. UnboundID LDAP SDK와 함께 제공되는 ldap-debugger 도구를 사용하면이 문제를 해결할 수 있습니다. 그러면 수신 한 모든 요청을 지정된 디렉토리 서버로 전달하도록 구성 할 수있는 아주 간단한 LDAP 프록시가 작성된 다음 LDAP 클라이언트를 실제 디렉토리 서버가 아닌 ldap-debugger 도구로 지정합니다. 그런 다음 ldap-debugger 도구는 정확한 LDAP 요청 및 LDAP 요청을 통과하는 응답 트래픽에 대한 자세한 정보를 인쇄합니다. JNDI와 UnboundID LDAP SDK의 두 요청에 대해 이렇게하면 차이점을 확인하고이를 처리하는 방법을 결정하는 데 도움이됩니다.

관련 문제