public abstract class ReferralException extends NamingException
サービス・プロバイダは、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()メソッドに渡される環境パラメータは呼出し側が所有します。サービス・プロバイダは、オブジェクトを変更したり、そのオブジェクトに対する参照を保持しませんが、その複製に対する参照は保持します。
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()
処理される参照を破棄します。
|
appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString
addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, printStackTrace, printStackTrace, printStackTrace, setStackTrace
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(); } } }
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.