Spec-Zone.ru › OpenJDK 21

Класс 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

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

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()
Отбрасывает перенаправление, которое собирается обработать.

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

Spec-Zone.ru

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