Download presentation
Presentation is loading. Please wait.
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();
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.