Stateless Session Beans EJB 3 0 3 1
Stateless Session Beans EJB 3. 0 コース 第 3回 1
ここでの目標 “Oracle Application Server EJB 3. 0 Preview” の概要を理解する。 n Stateless Session Bean の概要を理解する。 n 2
Oracle Application Server EJB 3. 0 Preview 3
EJB 3. 0 の実装 n 現時点では、主に次の3つ Resin 3. 0 n Jboss EJB 3. 0 Preview n Oracle Application Server EJB 3. 0 Preview n 4
Oracle Application Server EJB 3. 0 Preview 今回の実習で利用 n “EJB 3. 0 Early Draft 2” を実装している n O/R Mapping Framework として、”Oracle Top. Link” を採用 n 5
Oracle Top. Link Oracle 社のO/R Mapping Framework n EJB 3. 0 の仕様策定に多大な影響を与える n 来年リリース予定の Java EE 5 では、 Persistence API の Reference Implementation (RI = 参照実装) として、 Top. Link が使われる予定。 n 6
Stateless Session Beans 9
Hello. World. java (1) import javax. ejb. Remote; @Remote public interface Hello. World { public void say. Hello(String name); } 15
@Local n 同一のJava Virtual Machine からしか動かさ ない場合、@Local アノテーションを付加する @Local public interface Hello. World {…} 18
Stateless Session Beans の作成 20
Hello. World. Bean. java (1) import javax. ejb. Stateless; @Stateless public class Hello. World. Bean implements Hello. World { public void say. Hello(String name) {. . . } } 21
Hello. World. Bean. java (2) @Stateless Session Bean 本体 n Stateless Session Bean であることを示すた めに、@Stateless アノテーションを付加する n 22
Hello. World. Client. java Context context = new Initial. Context(); Hello. World hello. World = (Hello. World) context. lookup("java: comp/env/ejb/Hello. Wo rld"); hello. World. say. Hello(args[0]); 25
JNDIから Hello. Worldオブジェクトを取得 // Context (ディレクトリ) // Initail. Context (ルート) Context context = new Initial. Context(); // 名前に対応する Hello. World を取得 Hello. World hello. World = (Hello. World) context. lookup( "java: comp/env/ejb/Hello. World"); 27
etc/application-client. xml と JNDIからの検索 <ejb-ref-name> ejb/Hello. World </ejb-ref-name> context. lookup( "java: comp/env/ejb/Hello. World"); Javaのオブジェクトは、 java: comp/env/ という文字列 が自動的に付加される 28
メソッドの実行 hello. World. say. Hello(args[0]); 29
サンプルアプリケーションの 実行 (1) n J 2 EEサーバの起動 n n %ORACLE_HOME%¥bin¥ejb 30 -start Stateless Session Beans のコンパイル・デプ ロイ cd %ORACLE_HOME%¥demo¥howtoejb 30 slsb n ant n 30
課題の クライアントプログラム例 Context context = new Initial. Context(); Converter converter = (Converter)context. lookup( ”java: comp/env/ejb/Converter"); Big. Decimal dollar = new Big. Decimal(25); Big. Decimal yen = converter. dollar. To. Yen(dollar); System. out. println(yen); 34
編集すべきファイル ソースファイル n etc/application-client. xml n etc/application. xml n etc/jndi. properties n build. xml n 35
etc/application-client. xml の変更 <ejb-ref-name> ejb/Converter </ejb-ref-name> …… <remote>test. Converter</remote> 36
etc/application. xml の変更 <display-name> converter </display-name> <module> <ejb>converter-ejb. jar</ejb> </module> 37
etc/jndi. properties の変更 java. naming. provider. url= ormi: //localhost: 23791/converter 38
build. xml の変更 <property name="app. name" value="converter" />. . . <property name="cli. class" value="test. Converter. Client" /> 39
- Slides: 39