Класс ReferralException
- Все реализуемые интерфейсы:
Serializable
- Прямые известные подклассы:
LdapReferralException
public abstract class ReferralException extends NamingException
Поставщик сервиса предоставляет подкласс 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. |
|
protected |
Создает новый экземпляр ReferralException с предоставленным объяснением. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Context |
getReferralContext() |
Возвращает контекст, в котором продолжить метод. |
abstract Context |
getReferralContext |
Возвращает контекст, в котором продолжить метод, используя свойства среды. |
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
Подробное описание конструкторов
ReferralException
protected ReferralException(String explanation)
- Параметры:
-
explanation- Дополнительные подробности об этом исключении. Может быть null. - См. также:
ReferralException
protected ReferralException()
Подробное описание методов
getReferralInfo
public abstract Object getReferralInfo()
- Возвращает:
- Не нулевая информация о перенаправлении, связанная с этим перенаправлением.
getReferralContext
public abstract Context getReferralContext() throws NamingException
Для продолжения операции клиентская программа должна повторно вызвать метод с теми же аргументами, что и исходное вызов.
- Возвращает:
- Не нулевой контекст, в котором продолжить метод.
- Исключения:
-
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, 2023, 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/21/docs/api/java.naming/javax/naming/ReferralException.html