JavaTM Platform
Standard Ed. 6

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 , getCause , getExplanation , getRemainingName , getResolvedName , getResolvedObj , getRootCause , initCause , setRemainingName , setResolvedName , setResolvedObj , setRootCause , toString , toString
 
클래스 java.lang. Throwable 로부터 상속된 메소드
fillInStackTrace , getLocalizedMessage , getMessage , getStackTrace , printStackTrace , printStackTrace , printStackTrace , 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 를 throw 하는 문맥의 환경 프로퍼티을 사용해 작성됩니다.

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

반환값:
메소드를 계속하는 시점의 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 Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.