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() ( 및 적절한 constructor 또는 대응하는 「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 를 사용해 작성됩니다. 이 메소드는 콜측이 참조 문맥에 다른 환경 프로퍼티를 사용할 필요가 있는 경우에 인수 없음의 overload 된 형식 대신에 사용됩니다. 이 방법을 실행할 필요가 있는 것은 참조 문맥을 작성하기 위해서, 참조된 서버에 대해서 다른 인증 정보를 제공할 필요가 있는 경우입니다.

조작을 계속하려면 , 클라이언트 프로그램으로, 원의 호출과 같은 인수를 사용하는 메소드를 재차 호출합니다.

파라미터:
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 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.