- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- javax.naming.NamingException
-
- javax.naming.ReferralException
-
- All Implemented Interfaces:
-
Serializable
- 已知直接子类:
-
LdapReferralException
public abstract class ReferralException extends NamingException
此抽象类用于表示引用异常,该引用异常是响应于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
- 另请参见:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class javax.naming.NamingException
remainingName, resolvedName, resolvedObj, rootException
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
ReferralException()
构造一个新的ReferralException实例。protected
ReferralException(String explanation)
使用提供的说明构造一个新的ReferralException实例。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 abstract Context
getReferralContext()
检索继续该方法的上下文。abstract Context
getReferralContext(Hashtable<?,?> env)
检索使用环境属性继续该方法的上下文。abstract Object
getReferralInfo()
检索与此推介相关的信息(如URL)。abstract void
retryReferral()
重试目前正在处理的推介。abstract boolean
skipReferral()
丢弃有待处理的转介。-
Methods inherited from class javax.naming.NamingException
appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from class java.lang.Throwable
addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, printStackTrace, printStackTrace, printStackTrace, setStackTrace
-
-
-
-
构造方法详细信息
-
ReferralException
protected ReferralException(String explanation)
使用提供的说明构造一个新的ReferralException实例。 所有其他字段都设置为null。- 参数
-
explanation
- 有关此异常的其他详细信息。 可以为null。 - 另请参见:
-
Throwable.getMessage()
-
ReferralException
protected ReferralException()
构造一个新的ReferralException实例。 所有字段都设置为null。
-
-
方法详细信息
-
getReferralInfo
public abstract Object getReferralInfo()
检索与此推介相关的信息(如URL)。 该程序可以检查或显示此信息给用户以确定是否继续转诊,或确定需要提供的其他信息以继续转介。- 结果
- 与此推荐相关的非空介绍信息。
-
getReferralContext
public abstract Context getReferralContext() throws NamingException
检索继续该方法的上下文。 无论在上下文操作期间是直接遇到转介,还是间接地,例如在搜索枚举期间,引用异常都应提供继续操作的上下文。 引用上下文是使用引用ReferralException的上下文的环境属性创建的。要继续操作,客户端程序应该使用与原始调用相同的参数重新调用该方法。
- 结果
- 用于继续该方法的非空上下文。
- 异常
-
NamingException
- 如果遇到命名异常。 请致电retryReferral()
或skipReferral()
以继续处理转介。
-
getReferralContext
public abstract Context getReferralContext(Hashtable<?,?> env) throws NamingException
检索使用环境属性继续该方法的上下文。 无论在上下文操作期间是直接遇到转介,还是间接地,例如在搜索枚举期间,引用异常都应提供继续操作的上下文。引用上下文是使用
env
作为其环境属性创建的。 当调用者需要为引用上下文使用不同的环境属性时,应该使用此方法而不是无参数重载的形式。 它可能需要这样做,例如,当需要向引用的服务器提供不同的身份验证信息以创建引用上下文。要继续操作,客户端程序应该使用与原始调用相同的参数重新调用该方法。
- 参数
-
env
- 检索引用上下文时使用的可能的空环境。 如果为空,则不会使用环境属性。 - 结果
- 用于继续该方法的非空上下文。
- 异常
-
NamingException
- 如果遇到命名异常。 致电retryReferral()
或skipReferral()
以继续处理转介。
-
skipReferral
public abstract boolean skipReferral()
丢弃有待处理的转介。 调用此方法之后应该调用getReferralContext
以允许处理其他引用继续。 以下代码片段显示了典型的使用模式。} catch (ReferralException e) { if (!shallIFollow(e.getReferralInfo())) { if (!e.skipReferral()) { return; } } ctx = e.getReferralContext(); }
- 结果
- 如果更多的转诊处理正在等待; 否则为假。
-
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(); } } }
-
-