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


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


JNDIの設定で注意すべき点

 上記までの手順で実行すると、次のようなエラーが表示されるはずだ。

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

 これはJavaVMがJBossのJNDIを正しく見つけられないために起こる表示だ。

 JNDIを利用するクライアントは、どのJNDIサーバを使うのかを設定する必要がある。どのJNDIサーバを利用するのかを決めるには、幾つかの方法があるが、汎用性が高いのは、実行時のクラスパス内に「jndi.properties」というファイルを置き、そのファイル内で設定する方法だ。


その他の方法として、InitialContextクラスのインスタンスを作るときに、利用するJNDIサーバの情報を含めたハッシュ(Hashtableオブジェクト)を与える方法もある。しかしその場合、JNDIサーバ名がソースコードにハードコーディングされてしまうので、JNDIサーバを変更する際に、ソースコードの変更が必要となり汎用性に欠ける。

 JBossのJNDIを利用する場合のjndi.propertiesファイルの内容は、List 7のようになる。

List 7■jndi.propertiesファイル
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

 ここでは、2行目で「jnp://localhost:1099」を指定しているので、クライアントが実行されているコンピュータ自身で動作しているJBossに接続するという意味になる。この部分をlocalhostではなく、別のホスト名に変更すれば、別のコンピュータで動作しているJBossに接続することも可能だ。

 jndi.propertiesファイルをカレントディレクトリに置くことによって、正しく実行できるようになる。実行結果は、次の通りだ。

10+20=30

Enterprise Bean作成は容易、難しいのはコンパイル後の配置など

 ここまで説明してきたように、Enterprise Beanを作るには、ホームインタフェース、リモートインタフェース、Beanクラスの3つを作ればよい。これらは幾つかの規約に則った手順で作成すればよいので、さほど難しくはない。

 むしろ難しいのは、ejb-jar.xmlファイルやJNDIの設定など、コンパイルしたものをどうやって配備し、どうやってJNDIで見つけ出すのかという点かもしれない。それでも今回のように、Enterprise Beanを作り、それをスタンドアロンアプリケーションから呼び出す場合には、比較的容易だ。

 しかし複数のEnterprise Beanを作ったり、WebアプリケーションからEnterprise Beanを作るときに同一のjar形式ファイルにまとめたりするというと、とたんに話は複雑になってくる。この領域については連載の回を改めて、WebアプリケーションにおけるEnterprise Beanの使い方、そして、WebアプリケーションとEnterprise Beanを同一のjar形式ファイルにまとめる方法などについて解説してみよう。

関連記事
▼第2回 インタフェースとBeanクラス作成でEJBの核を知る
▼第1回 EJBの仕組みを知ろう
▼MySQLとJBossが協業
▼SunとJBossのJava論争が決着
▼JBoss、顧客に免責保証提供

関連リンク
▼Javaチャンネル

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

[大澤文孝,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.