ページの先頭行へ戻る
Interstage Studio Java EEワークベンチユーザーズガイド

8.2.2 JNDIのlookupによるオブジェクトの取得について

Java EEでは、Dependency Injectionによってリソースやオブジェクトを取得できますが、Dependency Injectionでは以下のような問題があります。

上記のような問題を解決するためには、従来と同様にJNDIのlookupによってリソースやオブジェクトの取得を行います。
以下に、いくつか例を示します。

EJBのローカルインタフェースのlookup

以下のようにEJBのローカルインタフェースをlookupします。

lookupの例

InitialContext ic = new InitialContext();
Calc calc = (Calc)ic.lookup("java:comp/env/Calc");

lookupのためのdeployment descriptorの記述例

<ejb-local-ref>
    <ejb-local-ref-name>Calc</ejb-local-ref-name >
    <local>sample.Calc</local>
    <ejb-link>ejb1.jar#CalcBean</ejb-link>
</ejb-local-ref >

JMS Destinationのlookup

以下のようにJMS Destinationをlookupします。

lookupの例

InitialContext ic = new InitialContext();
Queue queue = (Queue)ic.lookup("java:comp/env/jms/myQueue");

lookupのためのdeployment descriptorの記述例

<message-destination-ref>
    <message-destination-ref-name>jms/myQueue</message-destination-ref-name>
    <message-destination-type>javax.jms.Queue</message-destination-type>
    <message-destination-usage>Produces</message-destination-usage>
    <message-destination-link>myDestination</message-destination-link>
</message-destination-ref >
...
<message-destination>
    <message-destination-name>myDestination</message-destination-name>
    <mapped-name>testQueue</mapped-name>
</message-destination>

JDBCリソースのlookup

以下のようにJDBCリソースをlookupします。

lookupの例

InitialContext ic = new InitialContext();
DataSource symfo = (DataSource)ic.lookup("java:comp/env/jdbc/Symfo");

lookupのためのdeployment descriptorの記述例

<resource-ref>
    <res-ref-name>jdbc/Symfo</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <mapped-name>SymfoTestServer</mapped-name>
</resource-ref>