Класс 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
- См. также:
Краткое описание полей
Поля, объявленные в классе 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() |
Отменяет обрабатываемое перенаправление. |
Методы, объявленные в классе NamingException
appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString
Методы, объявленные в классе 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-среда, используемая при получении контекста перенаправления. Если значение равно 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, 2025, 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/25/docs/api/java.naming/javax/naming/ReferralException.html