リファクタリング第1章のビデオレンタルシステムを
"そのまま" EJB2.0 & CMP で実装するとどうなるか
| データソースおよびテーブル定義 | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| JBuilder7 Enterprise版 EJBデザイナ | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Price ローカルエンティティビーン | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Movie ローカルエンティティビーン | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Rental ローカルエンティティビーン | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Customer ローカルエンティティビーン | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| 検証用 SystemClient ステートレスセッションビーン | ||||||||||||||||||||||||||
| EJB環境変数 | ||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||
| Homeインターフェース | ||||||||||||||||||||||||||
| package refactor; import java.rmi.*; import javax.ejb.*; public interface SystemClientHome extends javax.ejb.EJBHome { public SystemClient create() throws CreateException, RemoteException; } |
||||||||||||||||||||||||||
| Remoteインターフェース | ||||||||||||||||||||||||||
| package refactor; import java.rmi.*; public interface SystemClient extends javax.ejb.EJBObject { public String test(String custname) throws RemoteException; } |
||||||||||||||||||||||||||
| Beanクラス | ||||||||||||||||||||||||||
| package refactor; import javax.ejb.*; import javax.naming.*; public class SystemClientBean implements SessionBean { SessionContext sessionContext; public void ejbCreate() throws CreateException { } public void ejbRemove() { } public void ejbActivate() { } public void ejbPassivate() { } public void setSessionContext(SessionContext sessionContext) { this.sessionContext = sessionContext; } /** * 検証用リモートメソッド */ public java.lang.String test(java.lang.String custname) { try { Context ctx = new InitialContext(); CustomerHome custhome = (CustomerHome)ctx.lookup("java:comp/env/ejb/Customer"); return custhome.findByPrimaryKey(custname).htmlStatement(); } catch(Exception ex) { throw new EJBException(ex); } } } |
[ 戻る ]