что такое java: comp / env?
что означает java:comp/env
?
как выглядит вверх:
Context envContext = (Context)initContext.lookup("java:comp/env");
делать ?
Я понимаю, что выглядеть как :
(DataSource)envContext.lookup("jdbc/MyDatasource")
ищет имя MyDatasource
на context.xml
или web.xml
чтобы получить URL-адрес базы данных. так ли это ? !! но что делает первый взгляд вверх ?
2 ответа:
java:comp/env
- это узел в дереве JNDI, где можно найти свойства для текущего компонента Java EE (веб-приложение или EJB).Context envContext = (Context)initContext.lookup("java:comp/env");
позволяет определить переменную, указывающую непосредственно на этот узел. Это позволяет делать
SomeBean s = (SomeBean) envContext.lookup("ejb/someBean"); DataSource ds = (DataSource) envContext.lookup("jdbc/dataSource");
, а не
SomeBean s = (SomeBean) initContext.lookup("java:comp/env/ejb/someBean"); DataSource ds = (DataSource) initContext.lookup("java:comp/env/jdbc/dataSource");
относительные пути вместо абсолютных путей. Вот для чего он используется.
это глобальная хэш-таблица в памяти, где вы можете хранить глобальные переменные по имени.
схема url" java: "заставляет JNDI искать
javaURLContextFactory
класс, который обычно предоставляется вашим контейнером приложения, например здесь осуществление администрирования, документациясм. также NamingManager.getURLContext