|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object
|
+--java.lang.Throwable
|
+--java.lang.Exception
|
+--javax.naming.NamingException
|
+--javax.naming.ReferralException
この abstract クラスは、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 は abstract クラスです。固定実装によって、その同期および直列化プロパティが決定されます。
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, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, 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 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.