特集
2004/03/25 18:00 更新


特集:第3回 JBossのインストールから基本的な使い方まで (4/8)


Enterprise Beanを配備のJNDI名を定義するjboss.xmlファイル

 次に、配備するときのJNDI名を決める。JNDI名は、クライアントからEnterprise Beanを利用する際の名前となる。既存のJNDI名と重複しなければ、どのような名前でも構わない。


既存のJNDI名は、後述するJNDI Viewを使って参照できる。


jboss.xmlファイルは必須ではない。jboss.xmlファイルを用意しない場合には、ejb-jar.xmlファイルのejb-name要素で指定したのと、同じJNDI名が自動的に付く。

 Enterprise Beanを配備するときのJNDI名の決め方は、EJBコンテナの種類によって異なり、統一された方法は規定されていない。JBossの場合には、jboss.xmlという名前のXML形式のファイルで設定することになっている。jboss.xmlファイルは、先に説明したejb-jar.xmlファイルと同様、配備記述子の一種だ。

 jboss.xmlファイルの内容は、次に挙げるList 5の通りだ。

List 5■jboss.xmlファイル

<?xml version="1.0"?>
<!DOCTYPE jboss PUBLIC "-//JBoss/DTD JBOSS 3.0//EN"
        "http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd">
<jboss>
        <enterprise-beans>
                <session>
                        <ejb-name>SampleBean</ejb-name>
                        <jndi-name>MyEJB/Sample</jndi-name>
                </session>
        </enterprise-beans>
</jboss>

 セッションBeanの場合、JNDI名は、<session>要素内の<jndi-name>で決定する。List 5の例では、SampleBeanという名前のセッションBeanにMyEJB/Sampleという名前を設定している。

<ejb-name>SampleBean</ejb-name>
<jndi-name>MyEJB/Sample</jndi-name>

 この<ejb-name>要素で指定する名前は、先のList 4に示したejb-jar.xmlファイルの<ejb-name>要素で指定した名前と合致させる必要がある。

 一方で、<jndi-name>要素で指定するJNDI名は、任意の名前でかまわない。

実行形式のjar形式へとまとめる

 JBossは、「Enterprise Beanを構成するクラスファイル(Beanクラス、リモートインタフェース、ホームインタフェースの計3つ)」と「配備記述子(ejb-jar.xmlファイルおよびjboss.xml)」をjar形式にまとめてコピーすると、配備が完了するようになっている。この際のディレクトリ構成は、Fig.11に示すように、META-INFサブディレクトリの下に配備記述子を置くようにしなければならない決まりになっている。


Fig.11で、各クラスファイルがexample/ejb/ディレクトリの下にあるのは、List 1〜List 3を見ると分かるように、package文で、example.ejbパッケージに属するように構成したためだ。

fig11.gif

Fig.11■jar形式ファイルの構成


 Fig.11のように構成したディレクトリを作ったならば、次のようにjarコマンドを実行して、jar形式に変換する。

$ jar cvf sample.jar *
マニフェストが追加されました。
エントリ META-INF/ を無視します。
META-INF/ejb-jar.xml を追加中です。(入 = 496) (出 = 272)(45% 収縮されました)
META-INF/jboss.xml を追加中です。(入 = 279) (出 = 190)(31% 収縮されました)
example/ を追加中です。(入 = 0) (出 = 0)(0% 格納されました)
example/ejb/ を追加中です。(入 = 0) (出 = 0)(0% 格納されました)
example/ejb/Sample.class を追加中です。(入 = 211) (出 = 167)(20% 収縮されました)
example/ejb/SampleBean.class を追加中です。(入 = 649) (出 = 340)(47% 収縮されました)
example/ejb/SampleHome.class を追加中です。(入 = 266) (出 = 187)(29% 収縮されました)

 ここでは、sample.jarというファイル名にしたが、ファイル名は任意のものでかまわない。

前のページ | 1 2 3 4 5 6 7 8 | 次のページ

[大澤文孝,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.