Spec-Zone.ru › OpenJDK 25

Класс 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
См. также:
  • Сериализованная форма

Краткое описание полей

Поля, объявленные в классе NamingException

remainingName, resolvedName, resolvedObj, rootException

Краткое описание конструкторов

ReferralException()
ReferralException(String explanation)
Модификатор Конструктор Описание
protected
Создает новый экземпляр ReferralException.
protected
Создает новый экземпляр ReferralException с указанным пояснением.

Краткое описание методов

Модификатор и тип Метод Описание
abstract Context getReferralContext()
Возвращает контекст, с которого следует продолжить выполнение метода.
abstract Context getReferralContext(Hashtable<?,?> env)
Возвращает контекст, с которого следует продолжить выполнение метода, используя свойства среды.
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

Методы, объявленные в классе 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();
         }
     }
 }

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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