![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Domestic Cat |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Что такое JNDI - на примере File System
1. JNDI расшифровывается как Java Naming and Directory Interface. Почему интерфейс? По той же причине, по которой и JDBC является интерфейсом - JNDI сам по себе работать не будет, ему нужна конкретная имплементация какого-либо сервиса каким-либо провайдером. 2. Что такое Java Naming and Directory Interface? Примером является DNS. Грубо говоря, это система, которая держит каталог пар "имя-сервис". Таким образом, клиенту не приходится набирать в строку броузера ИП или его репрезентацию в десятичной форме, клиент набрает имя. DNS сопоставляет имени ИП. Т.е. суть сервиса - хранить пары "имя-объект". 3. Рассмотрим на примере File System Service. Это очень простой сервис, который сопоставляет имени (например, "myfolder\myfile.txt") файл. 4. Начнем с инсталляции сервиса. Для этого нужно зайти на http://java.sun.com/products/jndi/downloads/index.html и выбрать Download JNDI 1.2.1 & More. Затем тянем File System Service Provider, 1.2 Beta 3 (fscontext-1_2-beta3.zip, 97.58 KB) . Разархивируем и добавляем оба jara из папки lib в CLASSPATH. Они нужны для запуска программы, не для компиляции. 5. Теперь создадим папку для проекта. У себя я создал C:\projects\jndi. Нам нужна такжа папка, являющаяся корнем сервиса, создаем C:\projects\jndi\jndi_root\. Помещаем в нее любой файл, скажем, foo.txt. 6. В C:\projects\jndi\ создаем файл jndi.properties со свойствами, необходимыми сервису. Это 2 свойства:
7. Пишем код.
При создании контекста свойства считываются из jndi.properties. Их можно было бы добавить программно:
Понятно, что этот метод менее гибок. 8. Запускаем: java JndiTest foo.txt. 9. Это очень простой пример. По сути, мы ничего особенного не сделали, того же результата можно было бы достичь гораздо проще. Зато мы "пощупали" JNDI. JNDI широко используется в RMI-IIOP и EJB, так что 10 минут потрачены с пользой. -------------------- |
||||||
|
|||||||
polosatij |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
5. Теперь создадим папку для проекта. У себя я создал C:\projects\jndi. Нам нужна такжа папка, являющаяся корнем сервиса, создаем C:\projects\jndi\jndi_root\. Помещаем в нее любой файл, скажем, foo.txt.
6. В C:\projects\jndi\ создаем файл jndi.properties со свойствами, необходимыми сервису. Это 2 свойства: Код Java 1: 2: java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory java.naming.provider.url=file:///c:/projects/jndi/jndi_root -------------------- сорри.. я чего-то не пойму.. а где ты указываешь, что тебя интересует папка "С:\projects\jndi\" ? быстро закинул твой файл в eclipse и он мне естественно кидает исключение Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial at javax.naming.spi.NamingManager.getInitialContext(Unknown Source) как мне ему сказать, что его интересует именно "jndi.properties" ? |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
JVM ищет файл на CLASSPATH'e, вот и все
![]() -------------------- |
|||
|
||||
polosatij |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
![]() ![]() ![]() УРЯ! домой.... пасиба >=) |
|||
|
||||
polosatij |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
хотя..
еще есть вопрос..
ты не встречался с таким? есть ли ldap на виндовс? |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
С LDAP не работал, но Апи одно нa всех.
На винду надо его ставить, например, отсюда http://www.openldap.org/ -------------------- |
|||
|
||||
polosatij |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
доброе утро
![]() продолжаю изучать дальше.. у мя вопрос такой.. ню получил я ссылку на объект:
что я могу сделать терь с этим "объектом"? или смысл всего - это лишь получить привязку на "объект" и куда-нибудь потом передать?! если передать, то куда именно (можеш пример привести?) ![]() пасиба за помощь ![]() |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Дa все что хочешь можо делать. Посмотри например код клиента в топике
http://forum.vingrad.ru/index.php?showtopic=46374 -------------------- |
|||
|
||||
Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 3 Всего: 127 |
А вот - для коннекта к БД пример - http://forum.vingrad.ru/index.php?showtopi...ndpost&p=502629
P.S. если, канешь, уметь правильно сервак J2EE настроить... -------------------- |
|||
|
||||
redwhite90 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
что значит и первая и вторая строчка? я так понимаю во второй строчке после file это уже комментарии. что за загадочное слово file? |
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
file:///c:/projects/jndi/jndi_root
Это не комментарии, а описание протокола file: и места хранения самого файла, также, как http:// это название протокола с последующим адресом |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |