|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.naming
类 ReferralException
java.lang.Object java.lang.Throwable java.lang.Exception javax.naming.NamingException javax.naming.ReferralException
- 所有已实现的接口:
- Serializable
- 直接已知子类:
- LdapReferralException
-
public abstract class ReferralException
- extends NamingException
此抽象类用于表示一个反向链接 (referral) 异常,该异常是在响应某一反向链接(比如 LDAP v3 服务器返回的反向链接)时生成的。
服务提供程序通过提供 getReferralInfo() 和 getReferralContext() 的实现(以及适当的构造方法和/或相应的 "set" 方法)来提供 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() 构造一个新的 ReferralException 实例。 |
protected |
ReferralException(String explanation) 使用所提供的解释构造一个新的 ReferralException 实例。 |
方法摘要 | |
---|---|
abstract Context |
getReferralContext() 检索继续该方法的上下文。 |
abstract Context |
getReferralContext(Hashtable<?,?> env) 使用环境属性检索继续该方法的上下文。 |
abstract Object |
getReferralInfo() 检索与此反向链接有关的信息(比如 URL)。 |
abstract void |
retryReferral() 检索当前正被处理的反向链接。 |
abstract boolean |
skipReferral() 放弃将要处理的反向链接。 |
从类 java.lang.Throwable 继承的方法 |
---|
fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, printStackTrace, printStackTrace, printStackTrace, setStackTrace |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
ReferralException
protected ReferralException(String explanation)
-
使用所提供的解释构造一个新的 ReferralException 实例。将所有其他字段都设置为 null。
- 参数:
-
explanation
- 有关此异常的附加详细信息。可以为 null。 - 另请参见:
-
Throwable.getMessage()
ReferralException
protected ReferralException()
- 构造一个新的 ReferralException 实例。将所有字段都设置为 null。
方法详细信息 |
---|
getReferralInfo
public abstract Object getReferralInfo()
- 检索与此反向链接有关的信息(比如 URL)。该程序可以检查或向用户显示此信息,以确定是否继续此反向链接,或确定继续此反向链接所需要提供的附加信息。
-
- 返回:
- 与此反向链接有关的非 null 反向链接信息。
getReferralContext
public abstract Context getReferralContext() throws NamingException
-
检索继续该方法的上下文。不管在上下文操作期间(例如在搜索枚举期间)是否直接或间接地遇到某一反向链接,反向链接异常都应该提供一个继续该操作的上下文。反向链接上下文是使用抛出 ReferralException 的上下文的环境属性创建的。
要继续该操作,客户端程序应该使用与初始调用相同的参数重新调用该方法。
-
- 返回:
- 将继续该操作的非 null 上下文。
- 抛出:
-
NamingException
- 如果遇到命名异常。调用 retryReferral() 或 skipReferral() 来继续处理这些反向链接。
getReferralContext
public abstract Context getReferralContext(Hashtable<?,?> env) throws NamingException
-
使用环境属性检索继续该方法的上下文。不管在上下文操作期间(例如在搜索枚举期间)是否直接或间接地遇到某一反向链接,反向链接异常都应该提供一个继续该操作的上下文。
反向链接上下文是通过使用 env 作为其环境属性来创建的。当调用方需要将不同的环境属性用于反向链接上下文时,应该使用此方法,而不是无参数的重载形式。例如,当需要为反向链接服务器提供不同的身份验证信息来创建反向链接上下文时,可能需要这样做。
要继续该操作,客户端程序应该使用与初始调用相同的参数重新调用该方法。
-
- 参数:
-
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(); }
-
- 返回:
- 如果还有反向链接处理正被挂起,则返回 true;否则返回 false。
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(); } } }
-
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |