Spec-Zone.ru › OpenJDK 8

Класс ReferralException

  • java.lang.Object
    • java.lang.Throwable
      • java.lang.Exception
        • javax.naming.NamingException
          • javax.naming.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, свойства среды не будут использованы.
Возвращает:
Не нулевой контекст, в котором следует продолжить метод.
Выбрасывает:
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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API