JavaTM 2
Platform
Std. Ed. v1.4.0

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, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, setStackTrace
 
クラス 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.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

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.