java:comp / envとは何ですか?


83

どういう意味java:comp/envですか?

ルックアップはどのようになりますか:

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

行う ?

私は次のようなルックアップを理解しています:

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

名前を見上げMyDatasourcecontext.xmlまたはweb.xmlデータベースのURLを取得します。そうですか?!! しかし、前者のルックアップは何をしますか?



4
@Marko Topolnikですが、それでは私の質問には答えられません。
saplingPro 2012

4
この質問を閉じるために投票する前に、リンクを開いて読んでください。タイトルを追いかけないでください。
saplingPro 2012

1
それは確かに私への答えのように見えます。それはあなたがあなたのリソースを検索するための容器が提供するルート名前空間です。
user207421

これは、たとえばWeblogicからTomcatに移行しようとしている人にとっては良い質問です
ACV

回答:


73

java:comp/env は、現在のJava EEコンポーネント(Webアプリケーションまたは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 2012

7
私はまだ実際に何であるかを感じませんjava:comp/env
saplingPro 2012

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.