| Виды программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
RMI Проблема при запуске Servlets из Eclipse? Как Вы относитесь к курящим девушкам? Прежде чем задать вопрос, прочтите это! Документация и книги по Java, Давайте соберём ссылки Tab Control в JSP taglib uri jmx, технология Развёртывание сервлетов Tomcat, Undeploy problem Как запустить программу Настрройка Tomcat, Проблема с кодировкой Технологии для трехзвенки?.., Что следует использовать?.. Tomcat+awt+XWindow, Tomcat без XWindow если нужен awt Помогите народ! ldap://localhost:389/o=JNDITutorial, ldap (?) Подмена request-а Запуск JSP, запуск JSp страничек из приложения URL, URL Servlet byte output, audio/mpeg Expression Language Ошибка при запуске, indexOf() и substring() Access help Java Server Faces, конкурент ли для aspx? Русская дока по Portlets Потоковые фильтры, как сделать? EJB где можна скачать? jsf: отображение дочерней страницы неправильный Submit, в некоторых Explorer'ах MDB - это просто проблема с деплоем компонента CMP bean & auto increment field, как быть с ejbCreate() PortableRemoteObject, почему не cast ?? круглое окно в JAVA, возможно ли это ? (-) JNDI: пример, File System J2EE без IDE? Сессия, Событие на окончание сессии как запустить один сервлет из другого десятичный разделитель в JDBC-ODBC Вышла новая версия MVNForum`а - RC4_1 много мелких вопросов передача параметра jsp-шному includ`у Удаление атрибутов сессии JAAS: секьюрити как выделить число из строки RMI-IIOP на примере помогите с кодировкой, про сервлеты и <FORM> работа с SelectionKey Настройка J2EE Внезапная проблемма с кодировкой Как Вы относитесь к курящим девушкам? Прежде чем задать вопрос, прочтите это! Документация и книги по Java, Давайте соберём ссылки JSF - ошибки при повторных нажатиях кнопки, что - получается технология не живая? MultipartRequest, как обслужить? paintComponent, помогите разобратся Как отлаживать сервлеты Submit формы, с открытием другой страницы File upload, Закачка файла на сервер при обработке кнопки с повторными нажатиями Как записать информацию со страницы в файл? Connection Pool Servlets vs. JSP подскажите в одном вопросе связанном с сервлетом struts Вопрос по сервлетам Прозрачный фон программы Tomcat, как сервис XP, проблема установки Submit не отправляет параметры struts actonForm |
Платные хостинги Раскрутка сайта Книги по программированию JNDI: пример, File System
- Что такое JNDI - на примере File System1. 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 свойства:Код java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactoryjava.naming.provider.url=file:///c:/projects/jndi/jndi_roothighlightSyntax('javaZTIzOW','java');7. Пишем код. Код import javax.naming.*;import java.io.*;import java.sql.*;import java.util.*;public class JndiTest{ public static void main(String[] args) throws Exception { if (args.length != 1) { printInfo(); System.exit(0); } String file = args[0]; JndiTest test = new JndiTest(); test.run(file); } private static void printInfo() { System.out.println("\nUsage: java JndiTest <filename>\n"); } public void run(String name) throws Exception { Context ctx = new InitialContext(); try { File file = (File)ctx.lookup(name); System.out.println("File name: " + name); System.out.println("File size: " + file.length() + " bytes"); System.out.println("Last modified: " + new Timestamp(file.lastModified())); } finally { ctx.close(); } }}highlightSyntax('javaYxMjcx','java');При создании контекста свойства считываются из jndi.properties. Их можно было бы добавить программно:Код Hashtable h = new Hashtable();h.put(Context.INITIAL_CONTEXT_FACTORY, "blahblahblah");h.put(Context.PROVIDER_URL, "blahblahblah");Context ctx = new InitialContext(h);highlightSyntax('javaxYzBiN','java');Понятно, что этот метод менее гибок.8. Запускаем: java JndiTest foo.txt.9. Это очень простой пример. По сути, мы ничего особенного не сделали, того же результата можно было бы достичь гораздо проще. Зато мы "пощупали" JNDI. JNDI широко используется в RMI-IIOP и EJB, так что 10 минут потрачены с пользой. - 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.RefFSContextFactoryjava.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" ? - JVM ищет файл на CLASSPATH'e, вот и все - во.. млин... конец рабочего дня получилось УРЯ!домой....пасиба >=) - хотя..еще есть вопрос..Код import javax.naming.*;import javax.naming.directory.*;import java.util.Hashtable;/** * Demonstrates how to use a name parser and compound name to * avoid dealing with JNDI composite name syntax. * * usage: java CompoundWrap */class CompoundWrap { public static void main(String[] args) { // Set up environment for creating initial context Hashtable env = new Hashtable(11); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial"); // env.put(Context.PROVIDER_URL, "http://localhost:8080"); try { // Create the initial context DirContext ctx = new InitialDirContext(env); // Get the parser for this namespace NameParser ldapParser = ctx.getNameParser(""); String dn = "cn=backslash\\\\a"; // Parse name Name compound = ldapParser.parse(dn); // List components in name for (int i = 0; i < compound.size(); i++) { System.out.println(compound.get(i)); } // Add to directory ctx.rebind(compound, "Hello"); // Look for it in the directory System.out.println(ctx.lookup(compound)); System.out.println(ctx.getAttributes(compound)); // Clean up ctx.unbind(compound); // Close ctx when done ctx.close(); } catch (NamingException e) { System.out.println(e); } }}highlightSyntax('javaZTlmND','java');ты не встречался с таким?есть ли ldap на виндовс? - С LDAP не работал, но Апи одно нa всех.На винду надо его ставить, например, отсюдаhttp://www.openldap.org/ - доброе утро продолжаю изучать дальше..у мя вопрос такой.. ню получил я ссылку на объект:Код Context initialContext = new InitialContext(); //Context initialContext = new InitialContext(props); Object obj = initialContext.lookup(name);highlightSyntax('javawNDgwY','java');что я могу сделать терь с этим "объектом"? или смысл всего - это лишь получить привязку на "объект" и куда-нибудь потом передать?! если передать, то куда именно (можеш пример привести?) пасиба за помощь - Дa все что хочешь можо делать. Посмотри например код клиента в топике http://forum.vingrad.ru/index.php?showtopic=46374 |