プログラマのお仕事メモ > アプリケーションサーバJBossを使う



ライセンスフリーのアプリケーションサーバJBossを利用したJ2EE開発の手順です。
ここで使う開発環境には、おなじみのEclipse(ver3.0.0)を採用しています。

※このコラムはJ2EEの基本的な部分を理解している方を対象にしています!

目次

環境を整えよう



JBossとEclipseプラグインのインストール

以下をそれぞれダウンロードしておきます。
・JBoss本体	jboss-3.0.0.zip
・Eclipse3.0.0用Lombozプラグイン	Lomboz.3.zip (eclipse3.0.0用)
・Eclipse3.0.0用Lomboz補助プラグイン	emf-sdo-runtime-2.0.0.zip (eclipse3.0.0用)

それぞれを解凍し以下の場所へコピーする

JBoss本体:
	C:/jboss-3.0.0

Eclipse3.0.0用Lombozプラグイン:
	Eclipseのインストールフォルダ/plugins/*

Eclipse3.0.0用Lomboz補助プラグイン:
	Eclipseのインストールフォルダ/plugins/*
	Eclipseのインストールフォルダ/features/*

Eclipseの設定

メニュー>ウィンドウ>設定>Lomboz>Server Definitions

コンボボックスServer Types: JBOSS 3.0 を選択します。

タブ中の設定は以下のように設定しOKボタンを押します。

Application Server Directory:	C:/jboss-3.0.0
Address:	127.0.0.1 (とりあえず自分のマシンのIP)
Port:	8080
Classpath Variable Name:	JBOSS300
Classpath Variable:	C:/jboss-3.0.0

以上でEclipse上でJBoss開発が可能になりました。

サーバプロジェクトを作成



Lomboz J2EE Project Wizardで骨組みを自動生成

メニューの「新規」>「その他」>「Lomboz J2EE Project」>次へ>

プロジェクト名:hoge と入力し>次へ>
フォルダーの追加>src と入力し>OK>

ビルド・パス上のソースフォルダ:	hoge/src 
デフォルト出力フォルダ:	hoge/bin

上記のようになっていることを確認し>次へ>

Ejb ModulesタブのAddボタンをクリックし
Module Name:	hogeEJB と入力し>OK>

Targeted Serversタブのコンボボックス「Type:」で
JBOSS 3.0 を選択しAddボタンをクリック>終了

Lomboz EJB Creation WizardでEJB自動生成

先ほどのプロジェクト「hoge」を右クリックの「新規」>「その他」>「Lomboz EJB Creation Wizard」>次へ>

以下のように設定し終了をクリック。

ソース・フォルダ:	hoge/src
パッケージ:	hoge
名前:	Hello
Select EJB Type:	Stateless Session EJB

↓このようにhoge.HelloBean.javaが生成されます。

EJBのビジネスメソッドの実装

先ほどのHelloBean.javaを右クリック>Lomboz J2EE...>Add EJB methods... を選択
以下のように設定し終了ボタンをクリック。

Method Signature:	public String sayHello()
Method Type:	Business Method
Interface Type:	Remote Interface

↓このようにhoge.HelloBean.sayHello()が生成されます。

生成されたメソッドsayHello()は中身が空ですので ここは自分で実装する必要があります。 ■実装前

/** * @ejb.interface-method * view-type="remote" **/ public String sayHello(){ return null; }

■実装後

/** * @ejb.interface-method * view-type="remote" **/ public String sayHello(){ return "Hello!"; }

sayHello()が実行されると"Hello!"という文字列を返すように実装しました。

デプロイ

HelloBean.javaを右クリック>Lomboz J2EE...>Add EJB Modules... を選択すると
「EJB[hogeEJB]」というチェックボックスを含んだダイアログが開きますのでチェックを入れてOKボタンを押してください。

※この操作によりbean.xmlとejbs.xmlにHelloBeanが追加されます。

hogeEJBフォルダを右クリック>Lomboz J2EE...>Generate EJB Classes を選択すると EJBクラスの生成が始まります。

※この操作は処理に少し時間がかかるかもしれません。

hogeEJBフォルダを右クリック>Lomboz J2EE...>Deploy Module を選択すると JBossへモジュールのデプロイが始まります。 C:/jboss-3.0.0/server/default/deploy/hogeEJB.jar が生成されていれば成功です。

※この操作は処理に少し時間がかかるかもしれません。

以上でデプロイは完了です。

クライアントプロジェクトを作成



Javaプロジェクト作成

メニュー>新規>プロジェクト>Javaプロジェクト>次へ>

プロジェクト名: hogeClient と入力し

>次へ>

ソースフォルダ:	hogeClient/src
デフォルト出力フォルダ:	hogeClient/bin

上記のように入力し、「プロジェクト」タブをクリック>

サーバアプリhogeプロジェクトのチェックボックスにチェックを入れて終了ボタンをクリック。

これでhogeClientというプロジェクトができました。

Lomboz EJB Test Client Wizardで骨組みを自動生成

hogeClientプロジェクトを右クリック>新規>その他>Lomboz EJB Test Client Wizard>

「Create an Ejb Test Client」というダイアログで以下のように設定し終了ボタンを押します。

ソースフォルダ:	hogeClient/src
パッケージ:	hogeClient
名前:	HogeClient
スーパークラス:	java.lang.Object
Ejb Home:	hoge.HelloHome
Ejb Interface:	hoge.Hello
Target Server:	JBOSS 3.0

以下のようにテスト用クライアントアプリの雛形が自動生成されます。

クライアントのビジネスメソッド実装

先ほど生成されたテスト用クライアントアプリのHogeClient.testBean()メソッドに
ビジネスロジックを実装していきます。

■実装前

public void testBean() { try { hoge.Hello myBean = getHome().create(); //-------------------------------------- //This is the place you make your calls. //System.out.println(myBean.callYourMethod()); } catch (RemoteException e) { e.printStackTrace(); } catch (CreateException e) { e.printStackTrace(); } catch (NamingException e) { e.printStackTrace(); } }

■実装後

public void testBean() { try { hoge.Hello myBean = getHome().create(); //-------------------------------------- //This is the place you make your calls. //System.out.println(myBean.callYourMethod()); System.out.println(myBean.sayHello()); //←ここに実装しています。 } catch (RemoteException e) { e.printStackTrace(); } catch (CreateException e) { e.printStackTrace(); } catch (NamingException e) { e.printStackTrace(); } }

動作確認



サーバを実行&クライアントを実行

■サーバを実行
サーバhogeプロジェクトを右クリック>実行 をクリックし、以下のように設定し実行をクリック

プロジェクト:	hoge
メイン・クラス:	org.jboss.Main


■クライアントを実行
クライアントhogeClientプロジェクトを右クリック>実行 をクリックし、以下のように設定し実行をクリック

プロジェクト:	hogeClient
メイン・クラス:	hogeClient.HogeClient


上図の通り出力されれば成功です! J2EEのEJB開発の大まかな流れはこれで理解できたと思います。多分。。。

この次はDBとの連携部分EntityBean(CMP中心)についてまとめる予定です。
暇があったらBMPまで突っ込みたいところです。
っていうかCMP2.0になってからBMPの存在意義はなくなったという人もいるようですが、どうなんですかねぇ?
詳しく調べて見ましょう。。。暇があればw

私の個人的意見ですが分散オブジェクト開発ならJ2EE+EJBよりもHORBの方が楽な気がしました。 なぜEJBが使われているのか私には謎です。いわゆるデファクトスタンダードってやつなんですかねぇ。。。

▲このページのTopへ

Copyright (C) 2004-2005 tanaka akira. All Rights Reserved.