kit jre jdk for downloads development developers java java-ee jndi

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.