Среда java:comp/env предлагает единый механизм, с помощью которого можно осуществлять поиск объектов пространства имен JNDI и объектов локальной среды приложений. В WebSphere Application Server по умолчанию предлагается несколько элементов, относящихся к локальной среде.
В спецификации J2EE 1.4 также предлагается механизм описания клиентских настраиваемых, отсутствующих по умолчанию, элементов среды с помощью элементов <resource-env-ref>, которые определяются в стандартных дескрипторах развертывания приложений. Данная спецификация отделяет описание элемента среды ресурсов от приложения следующим образом.
Выдвигая требование, чтобы сервер приложений предоставлял механизм описания отдельных административных объектов, инкапсулирующих элемент среды ресурсов. Доступ к этим административным объектам осуществляется через JNDI в локальном пространстве имен сервера приложений, java:comp/env. В спецификации не определяется, каким образом сервер приложений должен предоставлять такую функциональность. В результате этот механизм обычно является специфичным для сервера приложений как продукта.
Указывая имя административного объекта для JNDI-поиска и ожидаемый тип возвращаемого объекта в <resource-env-ref>.
В примере 6.5 показан элемент среды ресурсов, определенный в дескрипторе размещения Web-модуля приложения, web.xml.
Пример 6.5. Элемент rsourc-env-ref в менеджере размещения
<web-app>
<resource-env-ref>
<resource-env-ref-name>myapp/MyLogWriter</resource-env-ref-name>
<resource-env-ref-type>com.ibm.itso.test.LogWriter</resource-env-ref-type> </resource-env-ref>
</web-app>
В примере 6.6 показано, как к этому элементу среды ресурсов можно обращаться из Java-кода в Web-модуле.
Пример 6.6. Доступ из Java-кода к ссылке в среде ресурсов import com.ibm.itso.test.*;
InitialContext ctx = new InitialContext();
LogWriter myLog = (LogWriter) ctx.lookup(«java:comp/env/myapp/MyLogWriter»); myLog.write(msg);