Was ist gemeint mit java:comp/env
?
Wie sieht das aus?
Context envContext = (Context)initContext.lookup("java:comp/env");
machen ?
Ich verstehe, dass ein Look-up wie:
(DataSource)envContext.lookup("jdbc/MyDatasource")
sucht nach dem Namen MyDatasource
in der context.xml
oder web.xml
, um die URL der Datenbank zu erhalten. Ist es so ? !! Aber was macht der erstere Lookup?
java
jakarta-ee
jndi
saplingPro
quelle
quelle
Antworten:
java:comp/env
ist der Knoten in der JNDI-Struktur, an dem Sie Eigenschaften für die aktuelle Java EE-Komponente (eine Webanwendung oder eine EJB) finden.Context envContext = (Context)initContext.lookup("java:comp/env");
Ermöglicht das Definieren einer Variablen, die direkt auf diesen Knoten zeigt. Es erlaubt zu tun
SomeBean s = (SomeBean) envContext.lookup("ejb/someBean"); DataSource ds = (DataSource) envContext.lookup("jdbc/dataSource");
eher, als
SomeBean s = (SomeBean) initContext.lookup("java:comp/env/ejb/someBean"); DataSource ds = (DataSource) initContext.lookup("java:comp/env/jdbc/dataSource");
Relative Pfade statt absoluter Pfade. Dafür wird es verwendet.
quelle
java:comp/env
.java:comp/env
. Siehe zum Beispiel tomcat.apache.org/tomcat-7.0-doc/… . EJBs haben das Gleiche.Es handelt sich um eine speicherinterne globale Hashtabelle, in der Sie globale Variablen nach Namen speichern können.
Das URL-Schema "java:" veranlasst JNDI, nach einer
javaURLContextFactory
Klasse zu suchen , die normalerweise von Ihrem App-Container bereitgestellt wird. Beispiel: Hier ist Tomcats Implementierungs-JavadocSiehe auch NamingManager.getURLContext
quelle