Presentation is loading. Please wait.

Presentation is loading. Please wait.

Stateful Session Beans

Similar presentations


Presentation on theme: "Stateful Session Beans"— Presentation transcript:

1 Stateful Session Beans
EJB 3.0 コース 第4回

2 ここでの目標 “Oracle Application Server EJB 3.0 Preview” の概要を理解する。
Stateless Session Bean の概要を理解する。

3 Stateful Session Beans

4 Session Beans (1) クライアントが必要に応じて呼び出す処理をまとめたもの クライアントの特定のセッションに対応
セッション開始と同時に生成され、セッション終了時に消滅

5 Session Beans (2) Stateless Session Beans Stateful Session Beans
インスタンスに固有のフィールドがないため内部状態を持たず、ユーティリティクラスのように振る舞う Stateful Session Beans 内部状態を持っている

6 サンプルアプリケーション (1) %ORACLE_HOME%¥demo¥howtoejb30sfsb について解説する
Cart サンプルアプリケーション Ant でコンパイル、J2EEサーバへの配備 (デプロイ) を実行

7 サンプルアプリケーション (2) J2EEサーバ側 (EJB) クライアント側 そのほか、いくつかの設定ファイル Cart.java
CartBean.java クライアント側 CartClient.java そのほか、いくつかの設定ファイル

8 インタフェースの作成

9 Cart.java (1) import java.util.Collection; import javax.ejb.Remote;
public interface Cart { public void addItem(String item); public void removeItem(String item); public Collection getItems(); }

10 Cart.java (2) Stateful Session Beans が公開するメソッドを定義しているインタフェース

11 Stateful Session Beans の作成

12 CartBean.java (1) import javax.ejb.PostConstruct;
import javax.ejb.Stateful; @Stateful public class CartBean implements Cart { @PostConstruct public void initialize() { items = new ArrayList(); } public void addItem(String item) {…}

13 CartBean.java (2) @PostConstruct
Stateful Session Bean アノテーションを付加する @PostConstruct アノテーションが付加されたメソッドは、インスタンス生成時に呼びだされる

14 クライアントプログラム

15 CartClient.java Context context = new InitialContext();
Cart cart = (Cart) context.lookup("java:comp/env/Cart"); cart.addItem("Item1"); cart.addItem("Item2"); Collection items = cart.getItems(); for (Iterator i = items.iterator(); i.hasNext();) { String item = (String) i.next(); System.out.println(" " + item); }

16 Cart に対する操作 // cart に Item1 を追加 cart.addItem("Item1");
Collection items = cart.getItems();

17 課題

18 課題 銀行の口座を表す Stateful Session Bean をつくる。

19 課題の クライアントプログラム例 Context context = new InitialContext();
Bank bank = (Bank)context.lookup( ”java:comp/env/ejb/Bank"); bank.deposit(10000); // 預ける bank.draw(5000); // おろす // 現在の残高は? Int account = bank.getAccount();


Download ppt "Stateful Session Beans"

Similar presentations


Ads by Google