Класс ReferralException

Все реализованные интерфейсы:
Serializable
Непосредственные известные подклассы:
LdapReferralException
public abstract class ReferralException
extends NamingException

Этот абстрактный класс используется для представления исключения перенаправления, которое генерируется в ответ на перенаправление, например, такое, которое возвращается серверами LDAP v3.

Поставщик сервиса предоставляет подкласс ReferralException, обеспечивая реализации getReferralInfo() и getReferralContext() (и соответствующие конструкторы и/или методы «set»).

Следующий пример кода демонстрирует, как использовать ReferralException.

while (true) {
    try {
        bindings = ctx.listBindings(name);
        while (bindings.hasMore()) {
            b = bindings.next();
            ...
        }
        break;
    } catch (ReferralException e) {
        ctx = e.getReferralContext();
    }
}

ReferralException — это абстрактный класс. Конкретные реализации определяют его свойства синхронизации и сериализации.

Параметр окружения, переданный методу 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

addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, 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-адреса), относящуюся к данному перенаправлению. Программа может просмотреть или отобразить эту информацию пользователю, чтобы определить, следует ли продолжить перенаправление или требуется предоставить дополнительную информацию для продолжения перенаправления.

Возвращает:
Не нулевая информация о перенаправлении, относящаяся к данному перенаправлению.

getReferralContext

public abstract Context getReferralContext()
                                    throws NamingException

Возвращает контекст, в котором следует продолжить выполнение метода. Независимо от того, возникает ли перенаправление непосредственно во время операции с контекстом или косвенно, например, во время перечисления поиска, исключение перенаправления должно предоставить контекст, в котором следует продолжить операцию. Контекст перенаправления создается с использованием свойств среды контекста, который сгенерировал ReferralException.

Чтобы продолжить операцию, клиентская программа должна повторно вызвать метод с теми же аргументами, что и при первоначальном вызове.

Возвращает:
Не нулевой контекст, в котором следует продолжить выполнение метода.
Исключения:
NamingException - Если было обнаружено исключение именования. Вызовите либо retryReferral(), либо skipReferral(), чтобы продолжить обработку перенаправлений.

getReferralContext

public abstract Context getReferralContext(Hashtable<?,​?> env)
                                    throws NamingException

Возвращает контекст, в котором следует продолжить выполнение метода, используя свойства среды. Независимо от того, возникает ли перенаправление непосредственно во время операции с контекстом или косвенно, например, во время перечисления поиска, исключение перенаправления должно предоставить контекст, в котором следует продолжить операцию.

Контекст перенаправления создается, используя env в качестве свойств среды. Этот метод следует использовать вместо метода без аргументов, когда вызывающая сторона нуждается в использовании других свойств среды для контекста перенаправления. Например, ей может понадобиться это, если ей нужно предоставить разные учетные данные аутентификации на перенаправленный сервер для создания контекста перенаправления.

Чтобы продолжить операцию, клиентская программа должна повторно вызвать метод с теми же аргументами, что и при первоначальном вызове.

Параметры:
env - Возможные 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();
        }
    }
}

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.naming/javax/naming/ReferralException.html

Spec-Zone .ru
спецификации, руководства, описания, API