Spec-Zone.ru › OpenJDK 24

Класс 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) относящуюся к этому перенаправлению. Программа может проверить или отобразить эту информацию пользователю, чтобы определить, следует ли продолжить перенаправление или для определения дополнительных сведений, необходимых для продолжения перенаправления.
Возвращает:
Информация о перенаправлении, не равна null, относящаяся к этому перенаправлению.

getReferralContext

public abstract Context getReferralContext() throws NamingException
Получает контекст для продолжения метода. Независимо от того, было ли перенаправление встречено непосредственно во время операции с контекстом или косвенно, например, во время перечисления поиска, исключение перенаправления должно предоставить контекст для продолжения операции. Контекст перенаправления создаётся с использованием свойств среды контекста, который выбросил ReferralException.

Для продолжения операции клиентская программа должна повторно вызвать метод с теми же аргументами, что и при исходном вызове.

Возвращает:
Контекст, не равный null, для продолжения метода.
Изначает:
NamingException - Если было встречено исключение именования. Вызовите либо retryReferral(), либо skipReferral() для продолжения обработки перенаправлений.

getReferralContext

public abstract Context getReferralContext(Hashtable<?,?> env) throws NamingException
Получает контекст для продолжения метода, используя свойства среды. Независимо от того, было ли перенаправление встречено непосредственно во время операции с контекстом или косвенно, например, во время перечисления поиска, исключение перенаправления должно предоставить контекст для продолжения операции.

Контекст перенаправления создаётся с использованием env в качестве своих свойств среды. Этот метод должен использоваться вместо варианта без аргументов, когда вызывающая сторона нуждается в использовании различных свойств среды для контекста перенаправления. Ей может потребоваться это, например, когда ей нужно предоставить различные учетные данные аутентификации серверу-получателю для создания контекста перенаправления.

Для продолжения операции клиентская программа должна повторно вызвать метод с теми же аргументами, что и при исходном вызове.

Параметры:
env - Возможно null среда, используемая при получении контекста перенаправления. Если 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://download.java.net/java/early_access/jdk24/docs/api/java.naming/javax/naming/ReferralException.html

Spec-Zone.ru

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