java.lang.Object
java.lang.Throwable
java.lang.Exception
javax.naming.NamingException
javax.naming.ReferralException
- 所有已实现的接口:
Serializable
- 已知子类:
LdapReferralException
此抽象类用于表示引用异常,它是为响应 referral 而生成的,例如 LDAP v3 服务返回的异常。
服务提供商通过为 getReferralInfo() 和 getReferralContext()(以及适当的构造函数和/或相应的“设置”方法)提供实现来提供 ReferralException 的子类。
以下代码示例显示了如何使用 ReferralException。
while (true) { try { bindings = ctx.listBindings(name); while (bindings.hasMore()) { b = bindings.next(); ... } break; } catch (ReferralException e) { ctx = e.getReferralContext(); } }
ReferralException 是一个抽象类。具体实现决定了它的同步和序列化属性。
传递给 getReferralContext() 方法的环境参数由调用者拥有。服务提供者不会修改对象或保留对它的引用,但可以保留对它的克隆的引用。
- 自从:
- 1.3
- 参见:
-
字段摘要
在类 javax.naming.NamingException 中声明的字段
remainingName, resolvedName, resolvedObj, rootException -
构造方法总结
构造方法修饰符构造方法描述protected构造 ReferralException 的新实例。protectedReferralException(String explanation) 使用提供的解释构造 ReferralException 的新实例。 -
方法总结
修饰符和类型方法描述abstract Context检索继续该方法的上下文。abstract ContextgetReferralContext(Hashtable<?, ?> env) 使用环境属性检索继续方法的上下文。abstract Object检索与此引荐相关的信息(例如 URL)。abstract void重试当前正在处理的推荐。abstract boolean丢弃即将处理的推荐。在类 javax.naming.NamingException 中声明的方法
appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString在类 java.lang.Throwable 中声明的方法
addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, printStackTrace, printStackTrace, printStackTrace, setStackTrace
-
构造方法详细信息
-
ReferralException
使用提供的解释构造 ReferralException 的新实例。所有其他字段都设置为空。- 参数:
explanation- 有关此异常的其他详细信息。可以为空。- 参见:
-
ReferralException
protected ReferralException()构造 ReferralException 的新实例。所有字段都设置为空。
-
-
方法详情
-
getReferralInfo
检索与此引荐相关的信息(例如 URL)。该程序可以检查或向用户显示此信息以确定是否继续推荐,或确定需要提供额外信息以便继续推荐。- 返回:
- 与此推荐相关的非空推荐信息。
-
getReferralContext
检索继续该方法的上下文。无论是在上下文操作期间直接遇到引用,还是间接遇到引用,例如在搜索枚举期间,引用异常都应提供继续操作的上下文。引用上下文是使用引发 ReferralException 的上下文的环境属性创建的。要继续操作,客户端程序应使用与原始调用相同的参数重新调用该方法。
- 返回:
- 继续该方法的非空上下文。
- 抛出:
NamingException- 如果遇到命名异常。调用retryReferral()或skipReferral()继续处理推荐。
-
getReferralContext
使用环境属性检索继续方法的上下文。无论是在上下文操作期间直接遇到引用,还是间接遇到引用,例如在搜索枚举期间,引用异常都应提供继续操作的上下文。引用上下文是使用
env作为其环境属性创建的。当调用者需要为引用上下文使用不同的环境属性时,应该使用此方法而不是无参数重载形式。它可能需要这样做,例如,当它需要向被引用的服务提供不同的身份验证信息以创建引用上下文时。要继续操作,客户端程序应使用与原始调用相同的参数重新调用该方法。
- 参数:
env- 检索引用上下文时使用的可能为空的环境。如果为 null,则不会使用任何环境属性。- 返回:
- 继续该方法的非空上下文。
- 抛出:
NamingException- 如果遇到命名异常。调用retryReferral()或skipReferral()继续处理推荐。
-
skipReferral
public abstract boolean skipReferral()丢弃即将处理的推荐。调用此方法后应调用getReferralContext以允许继续处理其他引用。以下代码片段显示了典型的使用模式。} catch (ReferralException e) { if (!shallIFollow(e.getReferralInfo())) { if (!e.skipReferral()) { return; } } ctx = e.getReferralContext(); }- 返回:
- true 如果有更多推荐处理待处理;否则为假。
-
retryReferral
public abstract void retryReferral()重试当前正在处理的推荐。调用此方法后应调用getReferralContext以允许重试当前引用。以下代码片段显示了典型的使用模式。} catch (ReferralException e) { while (true) { try { ctx = e.getReferralContext(env); break; } catch (NamingException ne) { if (! shallIRetry()) { return; } // modify environment properties (env), if necessary e.retryReferral(); } } }
-