co to jest java: comp / env?


82

co to znaczy java:comp/env?

Jak wygląda wygląd:

Context envContext = (Context)initContext.lookup("java:comp/env");

zrobić ?

Rozumiem, że wyszukiwanie takie jak:

(DataSource)envContext.lookup("jdbc/MyDatasource")

wyszukuje nazwę MyDatasourcew context.xmllub, web.xmlaby uzyskać adres URL bazy danych. Czy tak jest? !! Ale co robi ten pierwszy?



4
@Marko Topolnik, ale to nie odpowiada na moje pytanie.
saplingPro

4
Przed głosowaniem otwórz i przeczytaj łącze, aby zamknąć to pytanie. Nie idź po tytule.
saplingPro

1
Z pewnością wygląda na odpowiedź dla mnie. Jest to główna przestrzeń nazw udostępniana przez kontener, w której można wyszukiwać zasoby.
user207421

To jest dobre pytanie dla osób próbujących na przykład migrować z Weblogic do Tomcat
ACV

Odpowiedzi:


73

java:comp/env to węzeł w drzewie JNDI, w którym można znaleźć właściwości dla bieżącego komponentu Java EE (aplikacji internetowej lub EJB).

Context envContext = (Context)initContext.lookup("java:comp/env");

umożliwia zdefiniowanie zmiennej wskazującej bezpośrednio na ten węzeł. To pozwala

SomeBean s = (SomeBean) envContext.lookup("ejb/someBean");
DataSource ds = (DataSource) envContext.lookup("jdbc/dataSource");

zamiast

SomeBean s = (SomeBean) initContext.lookup("java:comp/env/ejb/someBean");
DataSource ds = (DataSource) initContext.lookup("java:comp/env/jdbc/dataSource");

Względne ścieżki zamiast bezwzględnych ścieżek. Do tego służy.


Do czego służy ten węzeł? W drzewie JNDI byłoby wiele węzłów.
saplingPro

7
Nadal nie mam pojęcia, co tak naprawdę jest java:comp/env.
saplingPro

9
Każdy komponent JEE (webapp, EJB) może definiować właściwości, które są lokalne dla tego komponentu. Te właściwości są dostępne za pośrednictwem java:comp/env. Zobacz na przykład tomcat.apache.org/tomcat-7.0-doc/ ... EJB mają ten sam rodzaj rzeczy.
JB Nizet

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.