Spec-Zone.ru › OpenJDK 17

Класс 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 свойства среды, используемые при получении контекста перенаправления. Если 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, 2021, 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/17/docs/api/java.naming/javax/naming/ReferralException.html

Spec-Zone.ru

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