Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第4部 EJBアプリケーションの開発> 第24章 セションBeanの開発> 24.1 セションBeanの作成方法

24.1.1 Javaソースファイルと関係定義ファイルの作成

■セションBeanクラス

セションBeanクラスは、com.fujitsu.uji.ejb.bean.UjiSessionBeanクラスを継承して作成してください。メソッドを追加する必要はありません。以下の例は、セションBeanクラスのクラス名をejboffice.ejb.OfficeEJBとした場合のソースファイルです。

package ejboffice.ejb;
import com.fujitsu.uji.ejb.bean.UjiSessionBean;

public class OfficeEJB extends UjiSessionBean {
}

■ホームインタフェース

ホームインタフェースはcom.fujitsu.uji.ejb.UjiSessionHomeインタフェースを継承して作成します。以下のようにcreate()メソッドを作成してください。

package ejboffice.ejb;

import com.fujitsu.uji.ejb.UjiSessionHome;

public interface OfficeEJBHome extends UjiSessionHome {
        public OfficeEJBRemote create() 
                throws java.rmi.RemoteException, javax.ejb.CreateException, 
                       java.lang.reflect.InvocationTargetException;
}
create()メソッドのシグネチャは次のようにしてください。

public [リモートインタフェース名] create() 
throws java.rmi.RemoteException, javax.ejb.CreateException, java.lang.reflect.InvocationTargetException;
ここで、[リモートインタフェース名]の部分はリモートインタフェースのインタフェース名で置き換えてください。

■リモートインタフェース

リモートインタフェースはcom.fujitsu.uji.ejb.UjiSessionインタフェースを継承して作成します。メソッドの追加定義は必要ありません。

package ejboffice.ejb;

import com.fujitsu.uji.ejb.UjiSession;

public interface OfficeEJBRemote extends UjiSession {
}

■ビジネスクラス

ビジネスクラスには、セションBeanで実行する処理を記述したメソッドを作成します。ビジネスクラスの例を示します。

package ejboffice.ejb;

import ejboffice.*;
import com.fujitsu.uji.DispatchContext;

public class OfficeHandler extends com.fujitsu.uji.GenericHandler {

    // クライアントからの呼び出しを受けて実行されるメソッドを定義します。
    // クライアントから受信したデータBeanが第2引数に与えられます。
    public Object search(DispatchContext context, ViewBean dataBean) {

        // 実行する処理を記述します。   
        int index=dataBean.getIndex();
        ...
        dataBean.putHeader(header);

        // クライアントに返却するオブジェクトをreturnで指定します。
        return dataBean;
    }

    // 必要なだけメソッドを定義します。
    ...
}
ビジネスクラスの作成方法の詳細はビジネスクラスを参照してください。 以下では、セションBeanのビジネスクラスに特有の事項を説明します。

■コマンドマップ

コマンドマップには、クライアントから受信したデータに応じて、どのビジネスクラスのメソッドを呼び出すのかを記述します。以下は記述例です。

ejboffice.ViewBean;getArea=ejboffice.ejb.OfficeHandler.getArea
ejboffice.ViewBean;search=ejboffice.ejb.OfficeHandler.search
ejboffice.RenewBean;find=ejboffice.ejb.OfficeHandler.find
ejboffice.RenewBean;update=ejboffice.ejb.OfficeHandler.update
この記述例の1行目は以下の内容を意味しています。
クライアントから受信したデータBeanがejboffice.ViewBeanクラスであり、受信したコマンド名が"getArea"であるなら、ビジネスクラスejboffice.ejb.OfficeHandlerのgetAreaメソッドを呼び出す。
コマンドマップの記述方法の詳細はコマンドマップを参照してください。

■セションクラス

セションクラスはセションを通して使われるデータを保持するためのクラスです。セションクラスに記憶させたデータは、ビジネスクラスの実行終了後でもセションBeanのオブジェクトが存在する限り保持されます。アプリケーション独自の情報をセションクラスに記憶させたい場合は、ユーザ定義のセションクラスを使用してください。 ユーザ定義のセションクラスの作成方法はセションクラスを参照してください。

■アプリケーションクラス

アプリケーションクラスは同一のJVMで動作するセションBeanのオブジェクトで共有されるデータを保持します。アプリケーションクラスに記憶させたデータは、他のセションBeanオブジェクトからも参照されます。アプリケーション独自の情報をアプリケーションクラスに記憶させたい場合は、ユーザ定義のアプリケーションクラスを使用してください。 ユーザ定義のアプリケーションクラスの作成方法は、アプリケーションクラスを参照してください。

■ファクトリクラス

ファクトリクラスはアプリケーションクラスやセションクラスのインスタンスを作成するクラスです。ユーザ定義のアプリケーションクラスやセションクラスを使用する場合は、ユーザ定義のファクトリクラスを作成し、そのクラス名を初期化パラメタで指定する必要があります。 ファクトリクラスの作成方法は、ファクトリクラスを参照してください。初期化パラメタの設定方法はセションBeanの初期化パラメタの設定を参照してください。
目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2005