- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- javax.naming.NamingException
-
- javax.naming.ReferralException
-
- 实现的所有接口
-
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
-
-
字段汇总
-
声明的属性在类 javax.naming.NamingException
remainingName, resolvedName, resolvedObj, rootException
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
ReferralException()
构造一个新的ReferralException实例。protected
ReferralException(String explanation)
使用提供的解释构造一个新的ReferralException实例。
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 abstract Context
getReferralContext()
检索继续该方法的上下文。abstract Context
getReferralContext(Hashtable<?,?> env)
使用环境属性检索继续该方法的上下文。abstract Object
getReferralInfo()
检索与此引荐相关的信息(例如URL)。abstract void
retryReferral()
重试当前正在处理的推荐。abstract boolean
skipReferral()
丢弃要处理的推荐。-
声明方法的类 javax.naming.NamingException
appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString
-
-
-
-
构造方法详细信息
-
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的上下文的环境属性创建的。要继续操作,客户端程序应使用与原始调用相同的参数重新调用该方法。
- 结果
- 要继续该方法的非null上下文。
- 异常
-
NamingException
- 如果遇到命名异常。 请致电retryReferral()
或skipReferral()
继续处理推荐。
-
getReferralContext
public abstract Context getReferralContext(Hashtable<?,?> env) throws NamingException
使用环境属性检索继续该方法的上下文。 无论是在上下文操作期间直接遇到引用,还是间接地(例如,在搜索枚举期间),引用异常都应提供继续操作的上下文。使用
env
作为其环境属性创建引用上下文。 当调用者需要为引用上下文使用不同的环境属性时,应该使用此方法而不是no-arg重载形式。 例如,当需要向引用的服务器提供不同的身份验证信息以创建引用上下文时,可能需要执行此操作。要继续操作,客户端程序应使用与原始调用相同的参数重新调用该方法。
- 参数
-
env
- 检索引用上下文时可能使用的null环境。 如果为null,则不使用任何环境属性。 - 结果
- 要继续该方法的非null上下文。
- 异常
-
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(); } } }
-
-