クラスReferralException
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は抽象クラスです。 具象実装によって、その同期および直列化プロパティが決定されます。
getReferralContext()メソッドに渡される環境パラメータは、コール元によって所有されます。 サービス・プロバイダは、オブジェクトを変更したり、そのオブジェクトに対する参照を保持しませんが、その複製に対する参照は保持します。
- 導入されたバージョン:
- 1.3
- 関連項目:
-
フィールドのサマリー
クラスで宣言されたフィールド NamingException
remainingName, resolvedName, resolvedObj, rootException -
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protectedReferralExceptionのインスタンスを新しく構築します。protectedReferralException(String explanation) 指定された説明を使用して、ReferralExceptionのインスタンスを新しく構築します。 -
メソッドのサマリー
修飾子と型メソッド説明abstract Contextメソッドを継続する時点のコンテキストを取り出します。abstract ContextgetReferralContext(Hashtable<?, ?> env) 環境プロパティを使用するメソッドを継続する時点のコンテキストを取り出します。abstract Objectこの参照に関連する情報(URLなど)を取り出します。abstract void現在処理中の参照を取り出します。abstract boolean処理される参照を破棄します。クラスで宣言されたメソッド NamingException
appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString修飾子と型メソッド説明void残りの名前の最後のコンポーネントとして名前を追加します。voidappendRemainingName(Name name) 残りの名前の最後のコンポーネントとして「名前」からコンポーネントを追加します。getCause()この例外の原因を返します。この例外に関連した説明を取得します。名前の残りの未解決部分を取得します。正常に解決された名前の先頭部分を取得します。正常に解決されたオブジェクトを取得します。このNamingExceptionの根本原因がある場合は、その根本原因を取得します。この例外の原因を、指定された値に初期化します。voidsetRemainingName(Name name) この例外の残りの名前フィールドを設定します。voidsetResolvedName(Name name) この例外の「resolvedName」フィールドを設定します。voidsetResolvedObj(Object obj) この例外の「解決されたオブジェクト」フィールドを設定します。voidこのNamingExceptionの根本原因を記録します。toString()この例外の文字列表現が生成されます。toString(boolean detail) より詳細な文字列表現が生成されます。Throwableクラスで宣言されたメソッド
addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, printStackTrace, printStackTrace, printStackTrace, setStackTrace修飾子と型メソッド説明final voidaddSuppressed(Throwable exception) この例外を提供する目的で抑制された例外に、指定された例外を追加します。実行スタック・トレースを埋め込みます。このスロー可能オブジェクトの、ローカライズされた記述を作成します。このスロー可能オブジェクトの詳細メッセージ文字列を返します。Throwable.printStackTrace()によって出力されるスタック・トレース情報にプログラムでアクセスできるようにします。final Throwable[]この例外を提供する目的で(通常try-with-resources文によって)抑制された例外をすべて含む配列を返します。voidこのスロー可能オブジェクトおよびそのバックトレースを標準エラー・ストリームに出力します。voidこのスロー可能オブジェクトとそのバックトレースを指定された印刷ストリームに出力します。voidこのスロー可能オブジェクトとそのバックトレースを指定されたプリント・ライターに出力します。voidsetStackTrace(StackTraceElement[] stackTrace) Throwable.getStackTrace()によって返され、Throwable.printStackTrace()と関連メソッドによって出力される、スタック・トレース要素を設定します。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
コンストラクタの詳細
-
ReferralException
protected ReferralException(String explanation) 指定された説明を使用して、ReferralExceptionのインスタンスを新しく構築します。 ほかのフィールドはすべてnullに設定されます。- パラメータ:
explanation- この例外に関する追加の詳細情報。 nullも可。- 関連項目:
-
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(); } } }
-