JavaTM 2 Platform
Std. Ed. v1.3

javax.naming
クラス 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 は 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, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, printStackTrace, printStackTrace, printStackTrace, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString
 
クラス java.lang.Throwable から継承したメソッド
fillInStackTrace, getLocalizedMessage, getMessage
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

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();
		}
	    }
	}
 

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.