|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.lang.Throwable
java.lang.Exception
javax.naming.NamingException
javax.naming.ReferralException
public abstract class ReferralException
此抽象类用于表示一个引用异常,该异常是在响应某一引用(比如 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() 方法的环境属性归调用者所有。服务提供者不会修改该对象或保持对它的引用,但会保持对其副本的引用。
| 字段摘要 |
|---|
| 从类 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 |
| 构造方法详细信息 |
|---|
protected ReferralException(String explanation)
explanation - 有关此异常的附加详细信息。可以为 null。Throwable.getMessage()protected ReferralException()
| 方法详细信息 |
|---|
public abstract Object getReferralInfo()
public abstract Context getReferralContext()
throws NamingException
要继续该操作,客户端程序应该使用与初始调用相同的参数重新调用该方法。
NamingException - 如果遇到命名异常。调用 retryReferral() 或 skipReferral() 来继续处理这些引用。
public abstract Context getReferralContext(Hashtable<?,?> env)
throws NamingException
引用上下文是通过使用 env 作为其环境属性来创建的。当调用者需要将不同的环境属性用于引用上下文时,应该使用此方法,而不是无参数的重载形式。例如,当需要为引用服务器提供不同的验证信息来创建引用上下文时,可能需要这样做。
要继续该操作,客户端程序应该使用与初始调用相同的参数重新调用该方法。
env - 检索引用上下文时要使用的环境(可能为 null)。如果为 null,则不使用环境属性。
NamingException - 如果遇到命名异常。调用 retryReferral() 或 skipReferral() 来继续处理这些引用。public abstract boolean skipReferral()
getReferralContext,以允许处理其他要继续的引用。以下代码片段展示了一个典型的使用模式。
} catch (ReferralException e) {
if (!shallIFollow(e.getReferralInfo())) {
if (!e.skipReferral()) {
return;
}
}
ctx = e.getReferralContext();
}
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();
}
}
}
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。