-1

ルックアップはどのように行われますか :

Context envContext = (Context)initContext.lookup("java:comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/MyDatasource");

続行 ?

名前 がどのようにMyDataSource検索され、最終的に何が返されるのかということです。

データベースに接続するために 2 つのエントリが追加されています。の 1 つWEB-INF/web.xml:

<resource-ref>
<description>my connection</description>
<res-ref-name>jdbc/MyDatasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>

に追加されたもう1つMETA-INF/context.xmlは次のとおりです。

<Resource name="jdbc/MyDatasource" auth="Container" type="javax.sql.DataSource"
 driverClassName="org.apache.derby.jdbc.ClientDriver"
 url="jdbc:derby://localhost:1527/My Database;create=true"
 username="me" password="me"
 maxActive="20" maxIdle="10" maxWait="-1" />

これら 2 つのエントリは検索にどのように役立ちますか?

最初に見られるのは :web.xmlまたはcontext.xml?

ルックアップでプロセス全体を説明してください。

4

2 に答える 2

1

リソースは次の優先順位で配置されます:(要素をweb.xml介して、、(経由)。で定義されたリソースは、実際には対応する要素を持っている必要はないことに注意してください。JNDIリソースに関するTomcatのドキュメントを参照してください:http://tomcat.apache .org / tomcat-7.0-doc / jndi-resources-howto.html<resource-ref>context.xmlserver.xml<GlobalNamingResources><Context><resource-ref>web.xml

于 2012-07-22T13:47:27.750 に答える
0

ルックアップを実行する手順は次のとおりです。手順
1:

 Context context = new InitialContext(): 

初期コンテキストは、JNDIルックアップサービスへの参照です。これは、JNDI仮想ディレクトリツリーへのエントリのようなものです。

ステップ2:

Object o = context.lookup("mejb"): 

ここでのルックアップでは、サーバーにデプロイされているBeanの名前を指定して、そのBeanのホームインターフェイスへの参照を取得する必要があります。次に、これをキャストする必要があるjava.lang.Objectタイプのオブジェクトを取得します。ルックアップを行ったBeanのホームインターフェースへのオブジェクト。

ステップ3:

Home home = (Home) PortableRemoteObject.narrow(o,Home.class):

実際には、オブジェクトをタイプと思われるタイプにキャストする必要があります。ただし、これはIIOP上のRMIであるため、PortableRemoteObject.narrowメソッドを使用する必要があるようです。これは、オブジェクトタイプを実際のオブジェクトタイプにフィルタリングし、エラーをチェックするようです。

于 2012-07-19T04:47:31.463 に答える