java : comp / env 란 무엇입니까?


81

무엇을 의미 java:comp/env합니까?

어떻게 보이는지 :

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

하다 ?

나는 다음과 같은 조회를 이해합니다.

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

이름을 조회 MyDatasource에서 context.xml또는 web.xml데이터베이스의 URL을 얻을 수 있습니다. 그렇습니까? !! 그러나 전자 조회는 무엇을합니까?



4
@Marko Topolnik이지만 내 질문에 대답하지 않습니다.
saplingPro jul.

3
이 질문을 닫으려면 투표하기 전에 링크를 열고 읽으십시오. 제목 만 쫓지 마세요.
saplingPro jul.

1
나에 대한 대답처럼 보입니다. 그것은 당신이 당신의 자원을 찾기 위해 위해 컨테이너에서 제공하는 루트 네임 스페이스입니다.
론의 후작

이것은 예를 들어 Weblogic에서 Tomcat으로 마이그레이션하려는 사람들에게 좋은 질문입니다
ACV

답변:


73

java:comp/env 현재 Java EE 구성 요소 (웹 앱 또는 EJB)에 대한 속성을 찾을 수있는 JNDI 트리의 노드입니다.

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

이 노드를 직접 가리키는 변수를 정의 할 수 있습니다. 그것은 할 수 있습니다

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

보다는

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

절대 경로 대신 상대 경로. 그것이 사용되는 것입니다.


노드 는 무엇을 의미합니까? JNDI 트리에는 많은 노드가 있습니다.
saplingPro jul

7
나는 아직도 실제로 무엇인지 느끼지 못한다 java:comp/env.
saplingPro jul.

9
각 JEE 구성 요소 (webapp, EJB)는이 구성 요소에 로컬 인 속성을 정의 할 수 있습니다. 그리고 이러한 속성은 java:comp/env. 예를 들어 tomcat.apache.org/tomcat-7.0-doc/… 을 참조하십시오 . EJB는 같은 종류의 것을 가지고 있습니다.
JB Nizet 2012

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.