- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- javax.naming.NamingException
-
- javax.naming.ReferralException
-
- すべての実装されたインタフェース:
Serializable
- 直系の既知のサブクラス:
LdapReferralException
public abstract class ReferralException extends NamingException
この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()
メソッドに渡される環境パラメータは呼出し側が所有します。 サービス・プロバイダは、オブジェクトを変更したり、そのオブジェクトに対する参照を保持しませんが、その複製に対する参照は保持します。- 導入されたバージョン:
- 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()
処理される参照を破棄します。-
クラス javax.naming.NamingExceptionから継承されたメソッド
appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString
-
クラス java.lang.Objectから継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
クラス 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など)を取り出します。 プログラムでは、この情報を検証したり、またはこの情報をユーザーに示して、参照を継続するか、あるいは参照を継続するために追加情報を指定する必要があるかどうかを判別できます。- 戻り値:
- この参照に関連する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(); } } }
-
-