Spec-Zone .ru
спецификации, руководства, описания, API
Именование и Операции Каталога
След: Именование Java и Интерфейс Каталога

Урок: Именование и Операции Каталога

Можно использовать JNDI, чтобы выполнить операции именования, включая операции чтения и операции для того, чтобы обновить пространство имен. Следующие операции описываются в этом уроке:

Конфигурация

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

  1. Выберите поставщика услуг соответствующей службы, к которой Вы хотите получить доступ.
  2. Определите любую конфигурацию, в которой нуждается начальный контекст.
  3. Вызовите конструктора InitialContext.

Step1: Выберите Поставщика услуг для Начального Контекста

Можно определить поставщика услуг, чтобы использовать для начального контекста, создавая ряд свойств среды (Hashtable) и добавляя имя поставщика услуг class к этому. Свойства среды описываются подробно в Учебном руководстве JNDI.

Если бы Вы используете поставщика услуг LDAP от Sun Microsystems, то Ваш код был бы похож на следующий.

Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY, 
        "com.sun.jndi.ldap.LdapCtxFactory");

Чтобы определить поставщика услуг файловой системы от Sun Microsystems, Вы записали бы код, который похож на следующий.

Hashtable<String, Object> env = new Hashtable>String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY, 
        "com.sun.jndi.fscontext.RefFSContextFactory");

Можно также использовать системные свойства, чтобы определить поставщика услуг, чтобы использовать. Проверьте Учебное руководство JNDI для деталей.

Step2: Предоставьте Необходимую информацию Начальным Контекстом

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

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

env.put(Context.PROVIDER_URL, "ldap://ldap.wiz.com:389");
env.put(Context.SECURITY_PRINCIPAL, "joeuser");
env.put(Context.SECURITY_CREDENTIALS, "joepassword");

Это учебное руководство использует поставщика услуг LDAP от Sun Microsystems. Примеры предполагают, что сервер был установлен на локальной машине в порту 389 с корневым отличительным именем "o=JNDITutorial" и что никакая аутентификация не требуется для того, чтобы обновить каталог. Они включают следующий код для того, чтобы установить среду.

env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");

Если Вы будете использовать каталог, который устанавливается по-другому, то Вы должны будете установить эти свойства среды соответственно. Вы должны будете заменить "localhost" именем той машины. Можно выполнить эти примеры против любых общедоступных серверов каталогов или Вашего собственного сервера, работающего на различной машине. Вы должны будете заменить "localhost" именем той машины и заменить o=JNDITutorial контекстом именования, который доступен.

Step3: Создание Начального Контекста

Вы теперь готовы создать начальный контекст. Чтобы сделать это, Вы передаете конструктору InitialContext свойства среды, которые Вы создали ранее:

Context ctx = new InitialContext(env);

Теперь, когда у Вас есть ссылка на объект Context, можно начать получать доступ к службе именования.

Чтобы выполнить операции каталога, Вы должны использовать InitialDirContext. Чтобы сделать это, используйте одного из его конструкторов:

DirContext ctx = new InitialDirContext(env);

Этот оператор возвращает ссылку на объект DirContext для того, чтобы выполнить операции каталога.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь
.

Предыдущая страница: Предыдущий Урок
Следующая страница: Именование Исключений