Spec-Zone.ru › OpenJDK 25

Интерфейс Context

Все известные подинтерфейсы:
DirContext, EventContext, EventDirContext, LdapContext
Все известные классы, реализующие интерфейс:
InitialContext, InitialDirContext, InitialLdapContext
public interface Context
Этот интерфейс представляет контекст именования, состоящий из набора привязок имен к объектам. Он содержит методы для проверки и обновления этих привязок.

Имена

Каждое имя, передаваемое в качестве аргумента методу Context, является относительным к этому контексту. Пустое имя используется для обозначения самого контекста. Параметр имени никогда не может быть null.

Большинство методов имеют перегруженные версии: одна принимает параметр Name, а другая — String. Эти перегруженные версии эквивалентны: если параметры Name и String являются лишь разными представлениями одного и того же имени, то перегруженные версии одних и тех же методов ведут себя одинаково. В приведенных ниже описаниях методов полностью документирована только одна версия. Для второй версии приведена ссылка на первую: к обеим версиям относится одна и та же документация.

В системах, поддерживающих федерацию, аргументы-имена String методов Context являются составными именами. Аргументы-имена, являющиеся экземплярами CompositeName, рассматриваются как составные имена, тогда как аргументы Name, не являющиеся экземплярами CompositeName, рассматриваются как составные части имен (которые могут быть экземплярами CompoundName или других реализаций составных частей имен). Это позволяет использовать результаты NameParser.parse() в качестве аргументов методов Context. До JNDI 1.2 все аргументы-имена рассматривались как составные имена.

Кроме того, в системах, поддерживающих федерацию, все имена, возвращаемые в NamingEnumeration методами list() и listBindings(), являются составными именами, представленными в виде строк. Синтаксис строкового представления имен см. в CompositeName.

В системах, не поддерживающих федерацию, аргументы-имена (в форме Name или String) и имена, возвращаемые в NamingEnumeration, могут быть именами в собственном пространстве имен, а не именами в составном пространстве имен, на усмотрение поставщика службы.

Исключения

Все методы этого интерфейса могут выбрасывать NamingException или любой из его подклассов. Подробные сведения о каждом исключении см. в NamingException и его подклассах.

Параллельный доступ

Экземпляр Context не гарантирует синхронизацию при одновременном доступе из нескольких потоков. Потоки, которым требуется одновременно обращаться к одному экземпляру Context, должны синхронизироваться между собой и обеспечить необходимую блокировку. Нескольким потокам, работающим с разными экземплярами Context, синхронизация не требуется. Обратите внимание, что метод lookup, которому передано пустое имя, возвращает новый экземпляр Context, представляющий тот же контекст именования.

В целях управления параллельным доступом операция Context, возвращающая NamingEnumeration, не считается завершенной, пока перечисление используется или пока продолжается обработка переадресаций, созданных этой операцией.

Параметры

Параметр Name, переданный любому методу интерфейса Context или одного из его подинтерфейсов, не будет изменен поставщиком службы. Поставщик службы может хранить ссылку на него в течение всего времени выполнения операции, включая перечисление результатов метода и обработку созданных переадресаций. Вызывающий код не должен изменять объект в это время. Объект Name, возвращаемый любым таким методом, принадлежит вызывающему коду. Впоследствии вызывающий код может изменить его; поставщику службы это не разрешается.

Свойства среды

Приложениям JNDI необходим способ передачи различных предпочтений и свойств, определяющих среду, в которой осуществляется доступ к службам именования и каталогов. Например, для доступа к службе контексту может потребоваться указать учетные данные безопасности. Другой контекст может требовать предоставления сведений о конфигурации сервера. Все это называется средой контекста. Интерфейс Context предоставляет методы для получения и обновления этой среды.

Среда наследуется от родительского контекста по мере перехода методов контекста от одного контекста к другому. Изменения среды одного контекста напрямую не влияют на среду других контекстов.

Момент использования свойств среды и/или проверки их допустимости зависит от реализации. Например, поставщики служб используют некоторые свойства, связанные с безопасностью, для «входа» в каталог. Этот процесс входа может происходить при создании контекста или при первом вызове метода для контекста. Когда и происходит ли это вообще, зависит от реализации. Проверка допустимости изменений при добавлении свойств среды в контекст или их удалении также зависит от реализации. Например, проверка некоторых свойств может происходить в момент внесения изменения, при выполнении следующей операции с контекстом или не выполняться вовсе.

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

Файлы ресурсов

Чтобы упростить настройку среды, необходимой приложению JNDI, компоненты приложения и поставщики служб могут распространяться вместе с файлами ресурсов. Файл ресурсов JNDI — это файл в формате файла свойств (см. java.util.Properties), содержащий список пар «ключ/значение». Ключ — это имя свойства (например, "java.naming.factory.object"), а значение — строка в формате, определенном для этого свойства. Пример файла ресурсов JNDI:

java.naming.factory.object=com.sun.jndi.ldap.AttrsToCorba:com.wiz.from.Person java.naming.factory.state=com.sun.jndi.ldap.CorbaToAttrs:com.wiz.from.Person java.naming.factory.control=com.sun.jndi.ldap.ResponseControlFactory
Библиотека классов JNDI считывает файлы ресурсов и предоставляет значения свойств для свободного использования. Поэтому файлы ресурсов JNDI следует считать доступными для чтения всем, и не следует хранить в них конфиденциальные сведения, например пароли в открытом виде.

Существует два типа файлов ресурсов JNDI: поставщика и приложения.

Файлы ресурсов поставщика

У каждого поставщика службы есть необязательный ресурс, содержащий список свойств, специфичных для этого поставщика. Имя этого ресурса:
[prefix/]jndiprovider.properties
где prefix — это имя пакета реализации контекста поставщика, в котором каждая точка (".") заменена косой чертой ("/"). Например, предположим, что поставщик службы определяет реализацию контекста с именем класса com.sun.jndi.ldap.LdapCtx. Ресурс поставщика для этого поставщика называется com/sun/jndi/ldap/jndiprovider.properties. Если класс не входит в пакет, имя ресурса — просто jndiprovider.properties.

Некоторые методы библиотеки классов JNDI используют стандартные свойства JNDI, задающие списки фабрик JNDI:

  • java.naming.factory.object
  • java.naming.factory.state
  • java.naming.factory.control
  • java.naming.factory.url.pkgs
При определении значений этих свойств библиотека JNDI обращается к файлу ресурсов поставщика. По усмотрению поставщика службы в файле ресурсов поставщика можно задавать и другие свойства. В документации поставщика службы должно быть четко указано, какие свойства допустимы; остальные свойства в файле будут игнорироваться.

Файлы ресурсов приложения

При развертывании приложения в его пути к классам обычно присутствует несколько каталогов и JAR-файлов с кодом. JNDI находит (с помощью ClassLoader.getResources()) все файлы ресурсов приложения с именем jndi.properties в пути к классам. Кроме того, если каталог установки Java содержит встроенный файл свойств, обычно conf/jndi.properties, JNDI рассматривает его как дополнительный файл ресурсов приложения. Все свойства из этих файлов добавляются в среду начального контекста. Затем эта среда наследуется другими контекстами.

Если одно и то же свойство найдено более чем в одном файле ресурсов приложения, JNDI использует первое найденное значение или, в некоторых случаях, когда это имеет смысл, объединяет все значения (подробности приведены ниже). Например, если свойство "java.naming.factory.object" найдено в трех файлах ресурсов jndi.properties, список фабрик объектов представляет собой объединение значений свойства из всех трех файлов. При такой схеме каждый развертываемый компонент отвечает за указание фабрик, которые он предоставляет. JNDI автоматически собирает все эти списки и использует их при поиске классов фабрик.

Алгоритм поиска свойств

При создании начального контекста JNDI инициализирует его среду свойствами, определенными в параметре среды, переданном конструктору, системными свойствами и файлами ресурсов приложения. Подробности см. в InitialContext. Затем эта начальная среда наследуется другими экземплярами контекста.

Когда библиотеке классов JNDI требуется определить значение свойства, она объединяет значения из следующих двух источников в указанном порядке:

  1. Среда используемого контекста.
  2. Файл ресурсов поставщика (jndiprovider.properties) для используемого контекста.
Для каждого свойства, найденного в обоих источниках, JNDI определяет значение следующим образом. Если свойство относится к стандартным свойствам JNDI, задающим список фабрик JNDI (перечисленным выше), значения объединяются в один список, разделенный двоеточиями. Для остальных свойств используется только первое найденное значение.

Когда поставщику службы требуется определить значение свойства, он обычно берет его непосредственно из среды. Поставщик службы может определять свойства, специфичные для поставщика, для размещения в собственном файле ресурсов поставщика. В этом случае значения следует объединять, как описано в предыдущем абзаце.

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

Начиная с версии:
1.3

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

Модификатор и тип Поле Описание
static final String AUTHORITATIVE
Константа, содержащая имя свойства среды для указания авторитетности запрошенной службы.
static final String BATCHSIZE
Константа, содержащая имя свойства среды для указания размера пакета, используемого при возврате данных через протокол службы.
static final String DNS_URL
Константа, содержащая имя свойства среды для указания имени узла DNS и доменного имени, используемых для контекста URL JNDI (например, "dns://somehost/wiz.com").
static final String INITIAL_CONTEXT_FACTORY
Константа, содержащая имя свойства среды для указания используемой фабрики начального контекста.
static final String LANGUAGE
Константа, содержащая имя свойства среды для указания предпочтительного языка, используемого со службой.
static final String OBJECT_FACTORIES
Константа, содержащая имя свойства среды для указания списка используемых фабрик объектов.
static final String PROVIDER_URL
Константа, содержащая имя свойства среды для указания сведений о конфигурации, используемых поставщиком службы.
static final String REFERRAL
Константа, содержащая имя свойства среды для указания способа обработки переадресаций, обнаруженных поставщиком службы.
static final String SECURITY_AUTHENTICATION
Константа, содержащая имя свойства среды для указания используемого уровня безопасности.
static final String SECURITY_CREDENTIALS
Константа, содержащая имя свойства среды для указания учетных данных субъекта, используемых для аутентификации вызывающего объекта в службе.
static final String SECURITY_PRINCIPAL
Константа, содержащая имя свойства среды для указания идентификатора субъекта, используемого для аутентификации вызывающего объекта в службе.
static final String SECURITY_PROTOCOL
Константа, содержащая имя свойства среды для указания используемого протокола безопасности.
static final String STATE_FACTORIES
Константа, содержащая имя свойства среды для указания списка используемых фабрик состояний.
static final String URL_PKG_PREFIXES
Константа, содержащая имя свойства среды для указания списка префиксов пакетов, используемых при загрузке фабрик контекста URL.

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

Модификатор и тип Метод Описание
Object addToEnvironment(String propName, Object propVal)
Добавляет новое свойство среды в среду этого контекста.
void bind(String name, Object obj)
Связывает имя с объектом.
void bind(Name name, Object obj)
Связывает имя с объектом.
void close()
Закрывает этот контекст.
String composeName(String name, String prefix)
Составляет имя этого контекста с именем, относительным к этому контексту.
Name composeName(Name name, Name prefix)
Составляет имя этого контекста с именем, относительным к этому контексту.
Context createSubcontext(String name)
Создает и связывает новый контекст.
Context createSubcontext(Name name)
Создает и связывает новый контекст.
void destroySubcontext(String name)
Уничтожает указанный контекст и удаляет его из пространства имен.
void destroySubcontext(Name name)
Уничтожает указанный контекст и удаляет его из пространства имен.
Hashtable<?,?> getEnvironment()
Возвращает среду, действующую для этого контекста.
String getNameInNamespace()
Возвращает полное имя этого контекста в его собственном пространстве имен.
NameParser getNameParser(String name)
Возвращает анализатор, связанный с указанным контекстом.
NameParser getNameParser(Name name)
Возвращает анализатор, связанный с указанным контекстом.
NamingEnumeration<NameClassPair> list(String name)
Перечисляет имена, связанные с указанным контекстом, вместе с именами классов связанных с ними объектов.
NamingEnumeration<NameClassPair> list(Name name)
Перечисляет имена, связанные с указанным контекстом, вместе с именами классов связанных с ними объектов.
NamingEnumeration<Binding> listBindings(String name)
Перечисляет имена, связанные с указанным контекстом, вместе со связанными с ними объектами.
NamingEnumeration<Binding> listBindings(Name name)
Перечисляет имена, связанные с указанным контекстом, вместе со связанными с ними объектами.
Object lookup(String name)
Возвращает указанный объект.
Object lookup(Name name)
Возвращает указанный объект.
Object lookupLink(String name)
Возвращает указанный объект, переходя по ссылкам, за исключением конечного атомарного компонента имени.
Object lookupLink(Name name)
Возвращает указанный объект, переходя по ссылкам, за исключением конечного атомарного компонента имени.
void rebind(String name, Object obj)
Связывает имя с объектом, перезаписывая все существующие привязки.
void rebind(Name name, Object obj)
Связывает имя с объектом, перезаписывая все существующие привязки.
Object removeFromEnvironment(String propName)
Удаляет свойство среды из среды этого контекста.
void rename(String oldName, String newName)
Связывает новое имя с объектом, связанным со старым именем, и отменяет привязку старого имени.
void rename(Name oldName, Name newName)
Связывает новое имя с объектом, связанным со старым именем, и отменяет привязку старого имени.
void unbind(String name)
Отменяет привязку указанного объекта.
void unbind(Name name)
Отменяет привязку указанного объекта.

Подробное описание полей

INITIAL_CONTEXT_FACTORY

static final String INITIAL_CONTEXT_FACTORY
Константа, содержащая имя свойства среды для указания используемой фабрики начального контекста. Значением свойства должно быть полное имя класса фабрики, которая создаст начальный контекст. Это свойство можно указать в параметре среды, передаваемом конструктору начального контекста, в системном свойстве или в файле ресурсов приложения. Если оно не указано ни в одном из этих источников, при необходимости начального контекста для выполнения операции возникает исключение NoInitialContextException.

Значение этой константы — "java.naming.factory.initial".

См. также:
  • InitialContext
  • InitialDirContext
  • NamingManager.getInitialContext(Hashtable)
  • InitialContextFactory
  • NoInitialContextException
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

OBJECT_FACTORIES

static final String OBJECT_FACTORIES
Константа, содержащая имя свойства среды для указания списка используемых фабрик объектов. Значением свойства должен быть список полных имен классов фабрик, разделенных двоеточиями; эти фабрики создают объект на основе сведений о нем. Это свойство можно указать в среде, системном свойстве или одном либо нескольких файлах ресурсов.

Значение этой константы — "java.naming.factory.object".

См. также:
  • NamingManager.getObjectInstance(Object, Name, Context, Hashtable)
  • ObjectFactory
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

STATE_FACTORIES

static final String STATE_FACTORIES
Константа, содержащая имя свойства среды для указания списка используемых фабрик состояния. Значением свойства должен быть список полных имен классов фабрик состояния, разделенных двоеточиями; эти фабрики используются для получения состояния объекта по самому объекту. Это свойство можно указать в среде, системном свойстве или одном либо нескольких файлах ресурсов.

Значение этой константы — "java.naming.factory.state".

Начиная с:
1.3
См. также:
  • NamingManager.getStateToBind(Object, Name, Context, Hashtable)
  • StateFactory
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

URL_PKG_PREFIXES

static final String URL_PKG_PREFIXES
Константа, содержащая имя свойства среды для указания списка префиксов пакетов, используемых при загрузке фабрик контекстов URL. Значением свойства должен быть список префиксов пакетов, разделенных двоеточиями, для имени класса фабрики, которая создаст фабрику контекстов URL. Это свойство можно указать в среде, системном свойстве или одном либо нескольких файлах ресурсов. Префикс com.sun.jndi.url всегда добавляется к списку префиксов пакетов, который может быть пустым.

Значение этой константы — "java.naming.factory.url.pkgs".

См. также:
  • NamingManager.getObjectInstance(Object, Name, Context, Hashtable)
  • NamingManager.getURLContext(String, Hashtable)
  • ObjectFactory
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

PROVIDER_URL

static final String PROVIDER_URL
Константа, содержащая имя свойства среды для указания сведений о конфигурации используемого поставщика службы. Значением свойства должна быть строка URL (например, "ldap://somehost:389"). Это свойство можно указать в среде, системном свойстве или файле ресурсов. Если оно не указано ни в одном из этих источников, конфигурацию по умолчанию определяет поставщик службы.

Значение этой константы — "java.naming.provider.url".

См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

DNS_URL

static final String DNS_URL
Константа, содержащая имя свойства среды для указания имен DNS-узла и домена, используемых контекстом URL JNDI (например, "dns://somehost/wiz.com"). Это свойство можно указать в среде, системном свойстве или файле ресурсов. Если оно не указано ни в одном из этих источников, а программа пытается использовать URL JNDI, содержащий имя DNS, возникает исключение ConfigurationException.

Значение этой константы — "java.naming.dns.url".

См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

AUTHORITATIVE

static final String AUTHORITATIVE
Константа, содержащая имя свойства среды для указания авторитетности запрошенной службы. Если значение свойства — строка "true", доступ выполняется к наиболее авторитетному источнику (то есть минуя любые кэши и реплики). При любом другом значении источник может быть авторитетным, но это не обязательно. Если значение не задано, по умолчанию используется "false".

Значение этой константы — "java.naming.authoritative".

См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

BATCHSIZE

static final String BATCHSIZE
Константа, содержащая имя свойства среды для указания размера пакета при возврате данных с использованием протокола службы. Это подсказка поставщику: возвращать результаты операций пакетами указанного размера, чтобы оптимизировать производительность и использование ресурсов. Значение свойства — строковое представление целого числа. Если значение не задано, размер пакета определяет поставщик службы.

Значение этой константы — "java.naming.batchsize".

См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

REFERRAL

static final String REFERRAL
Константа, содержащая имя свойства среды для указания способа обработки перенаправлений, обнаруженных поставщиком службы. Значение свойства — одна из следующих строк:
"follow"
автоматически следовать перенаправлениям
"ignore"
игнорировать перенаправления
"throw"
вызывать ReferralException при обнаружении перенаправления.
Если это свойство не указано, значение по умолчанию определяется поставщиком.

Значение этой константы — "java.naming.referral".

См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

SECURITY_PROTOCOL

static final String SECURITY_PROTOCOL
Константа, содержащая имя свойства среды для указания используемого протокола безопасности. Его значение — строка, определяемая поставщиком службы (например, "ssl"). Если это свойство не указано, поведение определяется поставщиком службы.

Значение этой константы — "java.naming.security.protocol".

См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

SECURITY_AUTHENTICATION

static final String SECURITY_AUTHENTICATION
Константа, содержащая имя свойства среды для указания используемого уровня безопасности. Его значение — одна из следующих строк: "none", "simple", "strong". Если это свойство не указано, поведение определяется поставщиком службы.

Значение этой константы — "java.naming.security.authentication".

См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

SECURITY_PRINCIPAL

static final String SECURITY_PRINCIPAL
Константа, содержащая имя свойства среды для указания идентификатора принципала, от имени которого вызывающий аутентифицируется в службе. Формат принципала зависит от схемы аутентификации. Если это свойство не указано, поведение определяется поставщиком службы.

Значение этой константы — "java.naming.security.principal".

См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

SECURITY_CREDENTIALS

static final String SECURITY_CREDENTIALS
Константа, содержащая имя свойства среды для указания учетных данных принципала, от имени которого вызывающий аутентифицируется в службе. Значение свойства зависит от схемы аутентификации. Например, это может быть хешированный пароль, пароль в открытом виде, ключ, сертификат и т. д. Если это свойство не указано, поведение определяется поставщиком службы.

Значение этой константы — "java.naming.security.credentials".

См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

LANGUAGE

static final String LANGUAGE
Константа, содержащая имя свойства среды для указания предпочтительного языка, используемого службой. Значением свойства является список тегов языков, разделенных двоеточиями, определенных в RFC 1766. Если это свойство не указано, языковые предпочтения определяет поставщик службы.

Значение этой константы — "java.naming.language".

См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)
  • Значения константных полей

Подробное описание методов

lookup

Object lookup(Name name) throws NamingException
Получает именованный объект. Если name пусто, возвращает новый экземпляр этого контекста (представляющий тот же контекст именования, что и этот контекст, но его среду можно изменять независимо, и к нему можно обращаться одновременно).
Параметры:
name — имя искомого объекта
Возвращает:
объект, связанный с name
Исключения:
NamingException — если возникло исключение именования
См. также:
  • lookup(String)
  • lookupLink(Name)

lookup

Object lookup(String name) throws NamingException
Получает именованный объект. Подробности см. в разделе lookup(Name).
Параметры:
name — имя искомого объекта
Возвращает:
объект, связанный с name
Исключения:
NamingException — если возникло исключение именования

bind

void bind(Name name, Object obj) throws NamingException
Связывает имя с объектом. Все промежуточные контексты и целевой контекст (обозначаемый всеми компонентами имени, кроме последнего атомарного компонента) должны уже существовать.
Параметры:
name — имя для связывания; не может быть пустым
obj — связываемый объект; может быть null
Исключения:
NameAlreadyBoundException — если имя уже связано
InvalidAttributesException — если объект не предоставил все обязательные атрибуты
NamingException — если возникло исключение именования
См. также:
  • bind(String, Object)
  • rebind(Name, Object)
  • DirContext.bind(Name, Object, javax.naming.directory.Attributes)

bind

void bind(String name, Object obj) throws NamingException
Связывает имя с объектом. Подробности см. в разделе bind(Name, Object).
Параметры:
name — имя для связывания; не может быть пустым
obj — связываемый объект; может быть null
Исключения:
NameAlreadyBoundException — если имя уже связано
InvalidAttributesException — если объект не предоставил все обязательные атрибуты
NamingException — если возникло исключение именования

rebind

void rebind(Name name, Object obj) throws NamingException
Связывает имя с объектом, заменяя существующую связь. Все промежуточные контексты и целевой контекст (обозначаемый всеми компонентами имени, кроме последнего атомарного компонента) должны уже существовать.

Если объект является DirContext, все существующие атрибуты, связанные с именем, заменяются атрибутами объекта. В противном случае все существующие атрибуты, связанные с именем, остаются без изменений.

Параметры:
name — имя для связывания; не может быть пустым
obj — связываемый объект; может быть null
Исключения:
InvalidAttributesException — если объект не предоставил все обязательные атрибуты
NamingException — если возникло исключение именования
См. также:
  • rebind(String, Object)
  • bind(Name, Object)
  • DirContext.rebind(Name, Object, javax.naming.directory.Attributes)
  • DirContext

rebind

void rebind(String name, Object obj) throws NamingException
Связывает имя с объектом, заменяя существующую связь. Подробности см. в разделе rebind(Name, Object).
Параметры:
name — имя для связывания; не может быть пустым
obj — связываемый объект; может быть null
Исключения:
InvalidAttributesException — если объект не предоставил все обязательные атрибуты
NamingException — если возникло исключение именования

unbind

void unbind(Name name) throws NamingException
Отменяет связь с именованным объектом. Удаляет конечное атомарное имя из name в целевом контексте — том, который обозначается всеми компонентами name, кроме конечной атомарной части.

Этот метод идемпотентен. Он выполняется успешно, даже если конечное атомарное имя не связано в целевом контексте, но вызывает NameNotFoundException, если не существует хотя бы одного промежуточного контекста.

Все атрибуты, связанные с именем, удаляются. Промежуточные контексты не изменяются.

Параметры:
name — имя, связь с которым требуется отменить; не может быть пустым
Исключения:
NameNotFoundException — если промежуточный контекст не существует
NamingException — если возникло исключение именования
См. также:
  • unbind(String)

unbind

void unbind(String name) throws NamingException
Отменяет связь с именованным объектом. Подробности см. в разделе unbind(Name).
Параметры:
name — имя, связь с которым требуется отменить; не может быть пустым
Исключения:
NameNotFoundException — если промежуточный контекст не существует
NamingException — если возникло исключение именования

rename

void rename(Name oldName, Name newName) throws NamingException
Связывает новое имя с объектом, связанным со старым именем, и отменяет связь со старым именем. Оба имени относительны к этому контексту. Все атрибуты, связанные со старым именем, становятся связанными с новым именем. Промежуточные контексты старого имени не изменяются.
Параметры:
oldName — имя существующей связи; не может быть пустым
newName — имя новой связи; не может быть пустым
Исключения:
NameAlreadyBoundException — если newName уже связано
NamingException — если возникло исключение именования
См. также:
  • rename(String, String)
  • bind(Name, Object)
  • rebind(Name, Object)

rename

void rename(String oldName, String newName) throws NamingException
Связывает новое имя с объектом, связанным со старым именем, и отменяет связь со старым именем. Подробности см. в разделе rename(Name, Name).
Параметры:
oldName — имя существующей связи; не может быть пустым
newName — имя новой связи; не может быть пустым
Исключения:
NameAlreadyBoundException — если newName уже связано
NamingException — если возникло исключение именования

list

NamingEnumeration<NameClassPair> list(Name name) throws NamingException
Перечисляет имена, связанные в указанном контексте, а также имена классов связанных с ними объектов. Содержимое вложенных контекстов не включается.

Если в этот контекст добавляется или из него удаляется связь, влияние этого изменения на ранее возвращенное перечисление не определено.

Параметры:
name — имя контекста для перечисления
Возвращает:
перечисление имен и имен классов связей в этом контексте. Каждый элемент перечисления имеет тип NameClassPair.
Исключения:
NamingException — если возникло исключение именования
См. также:
  • list(String)
  • listBindings(Name)
  • NameClassPair

list

NamingEnumeration<NameClassPair> list(String name) throws NamingException
Перечисляет имена, связанные в указанном контексте, а также имена классов связанных с ними объектов. Подробности см. в разделе list(Name).
Параметры:
name — имя контекста для перечисления
Возвращает:
перечисление имен и имен классов связей в этом контексте. Каждый элемент перечисления имеет тип NameClassPair.
Исключения:
NamingException — если возникло исключение именования

listBindings

NamingEnumeration<Binding> listBindings(Name name) throws NamingException
Перечисляет имена, связанные в указанном контексте, а также связанные с ними объекты. Содержимое вложенных контекстов не включается.

Если в этот контекст добавляется или из него удаляется связь, влияние этого изменения на ранее возвращенное перечисление не определено.

Параметры:
name — имя контекста для перечисления
Возвращает:
перечисление связей в этом контексте. Каждый элемент перечисления имеет тип Binding.
Исключения:
NamingException — если возникло исключение именования
См. также:
  • listBindings(String)
  • list(Name)
  • Binding

listBindings

NamingEnumeration<Binding> listBindings(String name) throws NamingException
Перечисляет имена, связанные в указанном контексте, а также связанные с ними объекты. Подробности см. в разделе listBindings(Name).
Параметры:
name — имя контекста для перечисления
Возвращает:
перечисление связей в этом контексте. Каждый элемент перечисления имеет тип Binding.
Исключения:
NamingException — если возникло исключение именования

destroySubcontext

void destroySubcontext(Name name) throws NamingException
Уничтожает именованный контекст и удаляет его из пространства имен. Все атрибуты, связанные с именем, также удаляются. Промежуточные контексты не уничтожаются.

Этот метод идемпотентен. Он выполняется успешно, даже если конечное атомарное имя не связано в целевом контексте, но вызывает NameNotFoundException, если не существует хотя бы одного промежуточного контекста.

В федеративной системе именования контекст из одной системы именования может быть связан с именем в другой системе. Затем можно искать этот внешний контекст и выполнять над ним операции с помощью составного имени. Однако попытка уничтожить контекст с использованием этого составного имени завершится ошибкой NotContextException, поскольку внешний контекст не является «вложенным контекстом» контекста, в котором он связан. Вместо этого используйте unbind(), чтобы удалить связь с внешним контекстом. Для уничтожения внешнего контекста необходимо выполнить destroySubcontext() для контекста из «родной» системы именования внешнего контекста.

Параметры:
name — имя уничтожаемого контекста; не может быть пустым
Исключения:
NameNotFoundException — если промежуточный контекст не существует
NotContextException — если имя связано, но не обозначает контекст либо обозначает контекст неподходящего типа
ContextNotEmptyException — если указанный контекст не пуст
NamingException — если возникло исключение именования
См. также:
  • destroySubcontext(String)

destroySubcontext

void destroySubcontext(String name) throws NamingException
Уничтожает именованный контекст и удаляет его из пространства имен. Подробности см. в разделе destroySubcontext(Name).
Параметры:
name — имя контекста, который нужно уничтожить; не может быть пустым
Исключения:
NameNotFoundException — если промежуточный контекст не существует
NotContextException — если имя связано, но не обозначает контекст или обозначает контекст неподходящего типа
ContextNotEmptyException — если именованный контекст не пуст
NamingException — если возникает исключение именования

createSubcontext

Context createSubcontext(Name name) throws NamingException
Создает и связывает новый контекст. Создает контекст с заданным именем и связывает его в целевом контексте (обозначенном всеми компонентами имени, кроме последнего атомарного компонента). Все промежуточные контексты и целевой контекст должны уже существовать.
Параметры:
name — имя создаваемого контекста; не может быть пустым
Возвращает:
созданный контекст
Исключения:
NameAlreadyBoundException — если имя уже связано
InvalidAttributesException — если для создания подчиненного контекста требуется указать обязательные атрибуты
NamingException — если возникает исключение именования
См. также:
  • createSubcontext(String)
  • DirContext.createSubcontext(Name, Attributes)

createSubcontext

Context createSubcontext(String name) throws NamingException
Создает и связывает новый контекст. Подробности см. в разделе createSubcontext(Name).
Параметры:
name — имя создаваемого контекста; не может быть пустым
Возвращает:
созданный контекст
Исключения:
NameAlreadyBoundException — если имя уже связано
InvalidAttributesException — если для создания подчиненного контекста требуется указать обязательные атрибуты
NamingException — если возникает исключение именования

lookupLink

Object lookupLink(Name name) throws NamingException
Получает именованный объект, следуя по ссылкам, кроме ссылки в последнем атомарном компоненте имени. Если объект, связанный с name, не является ссылкой, возвращает сам объект.
Параметры:
name — имя искомого объекта
Возвращает:
объект, связанный с name, без перехода по последней ссылке (если она есть).
Исключения:
NamingException — если возникает исключение именования
См. также:
  • lookupLink(String)

lookupLink

Object lookupLink(String name) throws NamingException
Получает именованный объект, следуя по ссылкам, кроме ссылки в последнем атомарном компоненте имени. Подробности см. в разделе lookupLink(Name).
Параметры:
name — имя искомого объекта
Возвращает:
объект, связанный с name, без перехода по последней ссылке (если она есть)
Исключения:
NamingException — если возникает исключение именования

getNameParser

NameParser getNameParser(Name name) throws NamingException
Получает анализатор, связанный с именованным контекстом. В объединенной системе пространств имен разные системы именования могут по-разному анализировать имена. Этот метод позволяет приложению получить анализатор для разбиения имен на атомарные компоненты в соответствии с соглашениями конкретной системы именования. В пределах одной системы именования объекты NameParser, возвращаемые этим методом, должны быть равны (согласно проверке equals()).
Параметры:
name — имя контекста, для которого нужно получить анализатор
Возвращает:
анализатор имен, способный разбивать составные имена на атомарные компоненты
Исключения:
NamingException — если возникает исключение именования
См. также:
  • getNameParser(String)
  • CompoundName

getNameParser

NameParser getNameParser(String name) throws NamingException
Получает анализатор, связанный с именованным контекстом. Подробности см. в разделе getNameParser(Name).
Параметры:
name — имя контекста, для которого нужно получить анализатор
Возвращает:
анализатор имен, способный разбивать составные имена на атомарные компоненты
Исключения:
NamingException — если возникает исключение именования

composeName

Name composeName(Name name, Name prefix) throws NamingException
Объединяет имя этого контекста с именем, заданным относительно этого контекста. Для заданного имени (name), относительного этого контекста, и имени (prefix) этого контекста, относительного одного из его предков, метод возвращает объединение двух имен с использованием синтаксиса, соответствующего задействованным системам именования. То есть, если name обозначает объект относительно этого контекста, результатом будет имя того же объекта, но относительно контекста-предка. Ни одно из имен не может быть равно null.

Например, если имя этого контекста относительно начального контекста — «wiz.com», то

 composeName("east", "wiz.com")  
может вернуть "east.wiz.com". Если же имя этого контекста — «org/research», то
 composeName("user/jane", "org/research")        
может вернуть "org/research/user/jane", а
 composeName("user/jane", "research")    
вернет "research/user/jane".
Параметры:
name — имя относительно этого контекста
prefix — имя этого контекста относительно одного из его предков
Возвращает:
объединение prefix и name
Исключения:
NamingException — если возникает исключение именования
См. также:
  • composeName(String, String)

composeName

String composeName(String name, String prefix) throws NamingException
Объединяет имя этого контекста с именем, заданным относительно этого контекста. Подробности см. в разделе composeName(Name, Name).
Параметры:
name — имя относительно этого контекста
prefix — имя этого контекста относительно одного из его предков
Возвращает:
объединение prefix и name
Исключения:
NamingException — если возникает исключение именования

addToEnvironment

Object addToEnvironment(String propName, Object propVal) throws NamingException
Добавляет новое свойство среды в среду этого контекста. Если свойство уже существует, его значение перезаписывается. Дополнительные сведения о свойствах среды см. в описании класса.
Параметры:
propName — имя добавляемого свойства среды; не может быть равно null
propVal — значение добавляемого свойства; не может быть равно null
Возвращает:
предыдущее значение свойства или null, если ранее это свойство отсутствовало в среде
Исключения:
NamingException — если возникает исключение именования
См. также:
  • getEnvironment()
  • removeFromEnvironment(String)

removeFromEnvironment

Object removeFromEnvironment(String propName) throws NamingException
Удаляет свойство среды из среды этого контекста. Дополнительные сведения о свойствах среды см. в описании класса.
Параметры:
propName — имя удаляемого свойства среды; не может быть равно null
Возвращает:
предыдущее значение свойства или null, если это свойство отсутствовало в среде
Исключения:
NamingException — если возникает исключение именования
См. также:
  • getEnvironment()
  • addToEnvironment(String, Object)

getEnvironment

Hashtable<?,?> getEnvironment() throws NamingException
Получает среду, действующую для этого контекста. Дополнительные сведения о свойствах среды см. в описании класса.

Вызывающему коду не следует изменять возвращенный объект: влияние таких изменений на контекст не определено. Среду этого контекста можно изменить с помощью addToEnvironment() и removeFromEnvironment().

Возвращает:
среду этого контекста; никогда не равна null
Исключения:
NamingException — если возникает исключение именования
См. также:
  • addToEnvironment(String, Object)
  • removeFromEnvironment(String)

close

void close() throws NamingException
Закрывает этот контекст. Этот метод немедленно освобождает ресурсы контекста, не дожидаясь их автоматического освобождения сборщиком мусора.

Этот метод идемпотентен: его вызов для уже закрытого контекста не дает эффекта. Вызывать любые другие методы для закрытого контекста запрещено; результат такого вызова не определен.

Исключения:
NamingException — если возникает исключение именования

getNameInNamespace

String getNameInNamespace() throws NamingException
Получает полное имя этого контекста в его собственном пространстве имен.

Во многих службах именования существует понятие «полного имени» объектов в соответствующих пространствах имен. Например, запись LDAP имеет уникальное имя, а запись DNS — полное доменное имя. Этот метод позволяет клиентскому приложению получить такое имя. Строка, возвращаемая этим методом, не является составным именем JNDI и не должна напрямую передаваться методам контекста. В системах именования, для которых понятие полного имени неприменимо, выбрасывается OperationNotSupportedException.

Возвращает:
имя этого контекста в его собственном пространстве имен; никогда не равно null
Исключения:
OperationNotSupportedException — если в системе именования не существует понятия полного имени
NamingException — если возникает исключение именования
Начиная с версии:
1.3

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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/Context.html

Spec-Zone.ru

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