Пакет javax.naming
Этот пакет определяет операции именования Java Naming and Directory Interface (JNDI). JNDI предоставляет приложениям, написанным на языке программирования Java, функции именования и работы с каталогами. Он разработан независимо от конкретной реализации службы именования или каталогов. Поэтому к различным службам — новым, появляющимся и уже развернутым — можно обращаться единообразно.
Контекст
Этот пакет определяет понятие контекста, представленного интерфейсом Context. Контекст состоит из набора связей «имя — объект». Context — это основной интерфейс для поиска, связывания, отмены связывания и переименования объектов, а также для создания и уничтожения подчиненных контекстов.
lookup() — наиболее часто используемая операция. В lookup() передается имя объекта, который нужно найти, а операция возвращает объект, связанный с этим именем. Например, следующий фрагмент кода находит принтер и отправляет документ объекту принтера для печати:
Printer printer = (Printer)ctx.lookup("treekiller");
printer.print(report);
Имена
У каждого метода именования в интерфейсе Context есть две перегруженные версии: одна принимает аргумент Name, а другая — строковое имя. Name — это интерфейс, представляющий общее имя — упорядоченную последовательность из нуля или более компонентов. В этих методах Name можно использовать для представления составного имени (CompositeName), позволяющего задавать имя объекта, охватывающее несколько пространств имен.
Перегруженные версии, принимающие Name, полезны приложениям, которым требуется работать с именами: объединять их, сравнивать компоненты и выполнять другие подобные действия. Перегруженные версии, принимающие строковые имена, удобнее для простых приложений, например для тех, которые просто считывают имя и находят соответствующий объект.
Связи
КлассBinding представляет связь «имя — объект». Это кортеж, содержащий имя связанного объекта, имя класса объекта и сам объект. Класс Binding фактически является подклассом NameClassPair, который содержит только имя объекта и имя его класса. NameClassPair полезен, когда нужны только сведения о классе объекта и нет необходимости нести дополнительные затраты на получение самого объекта.
Ссылки
Объекты хранятся в службах именования и каталогов разными способами. Если хранилище объектов поддерживает хранение объектов Java, оно может поддерживать хранение объектов в сериализованном виде. Однако некоторые службы именования и каталогов не поддерживают хранение объектов Java. Кроме того, для некоторых объектов в каталоге Java-программы — лишь одна из групп приложений, которые обращаются к ним. В этом случае сериализованный объект Java может быть не самым подходящим представлением. JNDI определяет ссылку, представленную классомReference, которая содержит информацию о том, как создать копию объекта. JNDI попытается преобразовать найденные в каталоге ссылки в представляемые ими объекты Java, чтобы у клиентов JNDI создавалось впечатление, что в каталоге хранятся объекты Java. Начальный контекст
В JNDI все операции именования и работы с каталогами выполняются относительно контекста. Абсолютных корней нет. Поэтому JNDI определяет начальный контекст —InitialContext, который служит отправной точкой для операций именования и работы с каталогами. Получив начальный контекст, можно использовать его для поиска других контекстов и объектов. Исключения
В JNDI определена иерархия классов исключений, которые могут возникать при выполнении операций именования и работы с каталогами. Корневым классом этой иерархии являетсяNamingException. Программы, которым необходимо обрабатывать определенное исключение, могут перехватывать соответствующий подкласс исключения. В остальных случаях программам следует перехватывать NamingException. Спецификация пакета
Спецификацию API JNDI и связанные с ней документы можно найти в документации JNDI.- Начиная с версии:
- 1.3
| Класс | Описание |
|---|---|
| AuthenticationException | Это исключение возникает при ошибке аутентификации во время доступа к службе именования или каталогов. |
| AuthenticationNotSupportedException | Это исключение возникает, если запрошенный способ аутентификации не поддерживается. |
| BinaryRefAddr | Этот класс представляет двоичную форму адреса конечной точки связи. |
| Binding | Этот класс представляет найденную в контексте связь «имя — объект». |
| CannotProceedException | Это исключение указывает на то, что операция достигла точки в имени, после которой продолжить ее невозможно. |
| CommunicationException | Это исключение возникает, если клиент не может установить связь со службой каталогов или именования. |
| CompositeName | Этот класс представляет составное имя — последовательность компонентов имени, охватывающую несколько пространств имен. |
| CompoundName | Этот класс представляет составное имя — имя из иерархического пространства имен. |
| ConfigurationException | Это исключение возникает при проблеме с конфигурацией. |
| Context | Этот интерфейс представляет контекст именования, состоящий из набора связей «имя — объект». |
| ContextNotEmptyException | Это исключение возникает при попытке уничтожить непустой контекст. |
| InitialContext | Этот класс представляет начальный контекст для выполнения операций именования. |
| InsufficientResourcesException | Это исключение возникает, если для выполнения запрошенной операции недостаточно ресурсов. |
| InterruptedNamingException | Это исключение возникает, если выполняемая операция именования была прервана. |
| InvalidNameException | Это исключение указывает, что заданное имя не соответствует синтаксису именования системы именования. |
| LimitExceededException | Это исключение возникает, если метод завершается аварийно из-за ограничения, заданного пользователем или системой. |
| LinkException | Это исключение используется для описания проблем, возникающих при разрешении ссылок. |
| LinkLoopException | Это исключение возникает, если при попытке разрешить ссылку обнаружен цикл или достигнуто ограничение реализации на количество ссылок. |
| LinkRef | Этот класс представляет объект Reference, содержимым которого является имя, называемое именем ссылки и связанное с атомарным именем в контексте. |
| MalformedLinkException | Это исключение возникает при обнаружении некорректной ссылки во время ее разрешения или создания. |
| Name | Интерфейс Name представляет общее имя — упорядоченную последовательность компонентов. |
| NameAlreadyBoundException | Это исключение возникает в методах, указывая, что связь нельзя добавить, поскольку имя уже связано с другим объектом. |
| NameClassPair | Этот класс представляет пару из имени объекта и имени его класса для связи, найденной в контексте. |
| NameNotFoundException | Это исключение возникает, если компонент имени не удается разрешить, поскольку он не связан ни с одним объектом. |
| NameParser | Этот интерфейс используется для разбора имен из иерархического пространства имен. |
| NamingEnumeration<T> | Этот интерфейс предназначен для перебора списков, возвращаемых методами пакетов javax.naming и javax.naming.directory. |
| NamingException | Это суперкласс всех исключений, возникающих при выполнении операций интерфейсов Context и DirContext. |
| NamingSecurityException | Это суперкласс исключений, связанных с безопасностью, возникающих при выполнении операций интерфейсов Context и DirContext. |
| NoInitialContextException | Это исключение возникает, если не удается создать реализацию начального контекста. |
| NoPermissionException | Это исключение возникает при попытке выполнить операцию, на которую у клиента нет разрешения. |
| NotContextException | Это исключение возникает, если операция именования дошла до точки, в которой для ее продолжения требуется контекст, но найденный объект не является контекстом. |
| OperationNotSupportedException | Это исключение возникает, если реализация контекста не поддерживает вызываемую операцию. |
| PartialResultException | Это исключение указывает, что возвращаемый результат или полученная на данный момент часть результата неполны и операцию невозможно завершить. |
| RefAddr | Этот класс представляет адрес конечной точки связи. |
| Reference | Этот класс представляет ссылку на объект, находящийся вне системы именования и каталогов. |
| Referenceable | Этот интерфейс реализуется объектом, который может предоставить ссылку на самого себя. |
| ReferralException | Этот абстрактный класс представляет исключение перенаправления, возникающее в ответ на перенаправление, например возвращаемое серверами LDAP v3. |
| ServiceUnavailableException | Это исключение возникает при попытке связаться со службой каталогов или именования, если эта служба недоступна. |
| SizeLimitExceededException | Это исключение возникает, если метод создает результат, превышающий ограничение, связанное с размером. |
| StringRefAddr | Этот класс представляет строковую форму адреса конечной точки связи. |
| TimeLimitExceededException | Это исключение возникает, если метод не завершается в пределах заданного времени. |
© 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/package-summary.html