2012-08-31 29 views
3

我们有一个用户,我们的企业门户无法从AD获取组。需要详细说明未处理的延续参考

在门户网站日志,我们可以看到这样的错误:

javax.naming.PartialResultException: Unprocessed Continuation Reference(s) remaining name ''

我GOOGLE了错误,并且似乎来形容这种情况下,如何解决它的最好的症状是在这里:http://www-01.ibm.com/support/docview.wss?uid=swg21232921

假设我们不想仅仅因为一个用户而改变配置,而是为了修改这个特定用户的数据,有人可以解释我在AD中检查用户记录时如何识别这个问题?这是否与他的小组任务有关,如果是的话,我应该寻找什么?

回答

4

退房此链接的什么更多的数据的API告诉你:http://www.jspwiki.org/wiki/ActiveDirectoryIntegration

我不是这个API的专家,但至少可以我认为基于该文档是怎么回事解释知道AD在做什么。 :)

当您在本地服务器/搜索之外进行名称上下文搜索但在您的请求的逻辑范围内进行搜索时,AD将返回所谓的引用。这是每个RFC请求。想象一下推荐信息,告诉你应用程序可能会有更多的数据......也就是说,AD服务器在说“这里是我为你提供的结果,但是,你应该知道,有人否则可能会有更多......去这里找出答案。“ 引荐不是一个“错误”,他们是应用程序的暗示。

看来你的LDAP API遇到它们时会抛出异常。根据我上面提到的文档,它看起来像你可以吞下它们,或者追查引荐来找出是否有更多的数据。

+0

谢谢,现在有点清楚了。我想我的下一个问题是我怎么才能找出哪些引用存在这个特定的用户不工作,并删除它们? – Joly

+0

如果你告诉我名称空间配置你的森林和你正在使用什么类型的搜索基础,我可以帮助。这通常是因为有一个名称空间是您正在搜索的名称的“子”,并且您使用的是子树搜索。 (例如:您正在搜索dc = domain,dc = com,并且还有一个dc = child,dc = domain,dc = com)。 哦,你不想删除它们。你想改变你的搜索查询/ API配置。去除它们可能会毁坏你森林里的东西。:) –

+0

从哪里可以得到森林的名称空间? 搜索的基础是:DC = comp1,DC = ad,DC = comp,DC = com – Joly

7

我刚碰到这个。

我通过设置InitialDirContext环境来让Context.REFERRAL键设置为“follow”来解决这个问题。

根据Javadocs,该键可以是“跟随”,“忽略”或“抛出”。默认值由您使用的提供商决定,这可能是“抛出”。

0

另外我发现的问题之一是ldapContext中的不正确的搜索查询字符串。由于形成以参数的错误格式不正确的查询抛出:

javax.naming.PartialResultException: Unprocessed Continuation Reference(s) remaining name '' 

但是,如果我们添加参数Context.REFERRAL =“跟随”,那么它不会抛出异常,但它也没有返回结果。

ldap查询字符串的参数也应该匹配LDAP正在接受的参数,否则它会抛出相同的错误。