jre - ¿Qué es java: comp/env?
java se downloads (2)
Es una tabla hash global en memoria donde puede almacenar variables globales por nombre.
El esquema de la url "java:" hace que JNDI busque una clase javaURLContextFactory
, que generalmente es proporcionada por el contenedor de su aplicación, por ejemplo, aquí está la implementación jacat de Tomcat
Ver también NamingManager.getURLContext
¿Qué se entiende por java:comp/env
?
Cómo se ve así:
Context envContext = (Context)initContext.lookup("java:comp/env");
hacer?
Entiendo que una búsqueda como esta:
(DataSource)envContext.lookup("jdbc/MyDatasource")
busca el nombre MyDatasource
en el context.xml
o web.xml
para obtener la URL de la base de datos. Es tan ? !! Pero, ¿qué hace el primero?
java:comp/env
es el nodo en el árbol JNDI donde puede encontrar propiedades para el componente Java EE actual (una aplicación web o un EJB).
Context envContext = (Context)initContext.lookup("java:comp/env");
permite definir una variable que apunta directamente a este nodo. Permite hacer
SomeBean s = (SomeBean) envContext.lookup("ejb/someBean");
DataSource ds = (DataSource) envContext.lookup("jdbc/dataSource");
más bien que
SomeBean s = (SomeBean) initContext.lookup("java:comp/env/ejb/someBean");
DataSource ds = (DataSource) initContext.lookup("java:comp/env/jdbc/dataSource");
Rutas relativas en lugar de rutas absolutas. Para eso se usa.