lo que significa java:comp/env
?
¿Cómo se ve hacia arriba?
Context envContext = (Context)initContext.lookup("java:comp/env");
hacer
Entiendo que una búsqueda como:
(DataSource)envContext.lookup("jdbc/MyDatasource")
busca el nombre MyDatasource
en context.xml
o web.xml
para obtener la URL de la base de datos. Es tan ? !! Pero, ¿qué hace la primera búsqueda?
java
jakarta-ee
jndi
SaplingPro
fuente
fuente
Respuestas:
java:comp/env
es el nodo del á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 apunte 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.
fuente
java:comp/env
.java:comp/env
. Consulte tomcat.apache.org/tomcat-7.0-doc/… por ejemplo. Los EJB tienen el mismo tipo de cosas.Es una tabla hash global en memoria donde puede almacenar variables globales por nombre.
El esquema de URL "java:" hace que JNDI busque una
javaURLContextFactory
clase, que generalmente es proporcionada por el contenedor de su aplicación, por ejemplo, aquí está la implementación javadoc de TomcatConsulte también NamingManager.getURLContext
fuente