Интерфейс именования и каталогов Java

редактировать

Интерфейс именования и каталогов Java (JNDI ) - это Java API для службы каталогов, который позволяет клиентам программного обеспечения Java обнаруживать и искать данные и ресурсы (в виде объектов Java ) по имени. Как и все API Java, взаимодействующие с хост-системами, JNDI не зависит от базовой реализации. Кроме того, он определяет интерфейс поставщика услуг (SPI), который позволяет подключать реализации службы каталогов к платформе. Информация, просматриваемая через JNDI, может быть предоставлена ​​сервером, плоским файлом или базой данных; выбор зависит от используемой реализации.

Типичное использование JNDI включает:

  • подключение Java-приложения к внешней службе каталогов (такой как база данных адресов или LDAP сервер)
  • , позволяющий Java Servlet для поиска информации о конфигурации, предоставляемой хостингом веб-контейнер
Содержание
  • 1 Фон
  • 2 Базовый поиск
  • 3 Поиск
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Предпосылки

API-интерфейсы Java RMI и Java EE используют JNDI API для поиска объектов в сети.

API предоставляет:

  • механизм для привязки объекта к имени
  • интерфейс поиска в каталоге, который позволяет выполнять общие запросы
  • интерфейс событий, позволяющий клиентам определять при изменении записей каталога
  • Расширения LDAP для поддержки дополнительных возможностей службы LDAP

Часть SPI обеспечивает поддержку практически любого типа именования или службы каталогов, включая:

Sun Microsystems впервые выпустила спецификацию JNDI 10 марта 1997 года. По состоянию на 2006 год текущая версия - JNDI 1.2.

Базовый поиск

JNDI (интерфейс именования и каталогов Java) организует свои имена в иерархию. Имя может быть любой строкой, например com.example.ejb.MyBean. Имя также может быть объектом, реализующим интерфейс Name; однако строка - это наиболее распространенный способ назвать объект. Имя привязывается к объекту в каталоге, сохраняя либо объект, либо объект в службе каталогов, идентифицированный по имени.

JNDI API определяет контекст, который указывает, где искать объект. Начальный контекст обычно используется в качестве отправной точки.

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

Hashtable contextArgs = new Hashtable (); // Сначала вы должны указать фабрику контекста. // Вот как вы выбираете между реализацией jboss // и реализацией Sun или других поставщиков. contextArgs.put (Context.INITIAL_CONTEXT_FACTORY, "com.jndiprovider.TheirContextFactory"); // Следующий аргумент - это URL-адрес, указывающий, где находится хранилище данных: contextArgs.put (Context.PROVIDER_URL, "jndiprovider-database"); // (Вам также может потребоваться предоставить учетные данные безопасности) // Затем вы создаете начальный контекст Context myCurrentContext = new InitialContext (contextArgs);

Затем контекст используется для поиска ранее связанных имен в этом контексте. Например:

MyBean myBean = (MyBean) myCurrentContext.lookup ("com.mydomain.MyBean");

Альтернатива приведенному выше коду выглядит следующим образом:

Объект контекста также можно настроить, добавив файл jndi.properties в путь к классам, содержащий имя исходного класса фабрики контекста и URL-адрес поставщика. Приведенный выше код будет уменьшен, как показано ниже:

// просто нужно создать начальный объект контекста, он попытается прочитать файл jndi.properties из пути к классам. Контекст myCurrentContext = new InitialContext ();

Затем контекст используется для поиска ранее связанных имен в этом контексте. Например:

MyBean myBean = (MyBean) myCurrentContext.lookup ("com.mydomain.MyBean");
Поиск

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

См. также
  • icon Портал компьютерного программирования
Ссылки
  1. ^«Java SE - Core Technologies - Интерфейс именования и каталогов Java (JNDI) ". www.oracle.com. Проверено 17 декабря 2016 г.
  2. ^"ПУНКТЫ JNDI Resources". Руководство пользователя Apache Tomcat 7. Фонд программного обеспечения Apache. Проверено 21 января 2014 г.
  3. ^«Поставщик услуг реестра JNDI / RMI». docs.oracle.com. Проверено 17 декабря 2016 г.
  4. ^«SUN MICROSYSTEMS, INC. ПРЕДСТАВЛЯЕТ JAVA NAMING AND DIRECTORY INTERFACE API». sun.com. 1997-03-10. Архивировано с оригинального 08.09.2004.
  5. ^«Фильтры поиска». docs.oracle.com. Проверено 17 декабря 2016 г.
Внешние ссылки
Последняя правка сделана 2021-05-24 03:57:18
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте