des enterprise beans - Département Informatique
des enterprise beans - Département Informatique
des enterprise beans - Département Informatique
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Exemple du bean entité bank<br />
Exemple du bean entité bank<br />
L’exemple bank montre comment utiliser <strong>des</strong> <strong>beans</strong> entité. Il inclut deux<br />
implémentations de la même interface distante Account. L’une utilise la<br />
persistance gérée par le bean, l’autre par le conteneur.<br />
Le bean entité SavingsAccount, qui utilise la persistance gérée par le bean,<br />
représente <strong>des</strong> comptes d’épargne. Si vous examinez le code du bean<br />
entité, vous verrez qu’il comprend <strong>des</strong> appels directs à JDBC.<br />
Le bean entité CheckingAccount, qui utilise la persistance gérée par le<br />
conteneur, représente <strong>des</strong> comptes chèques. Il se repose sur le conteneur<br />
pour implémenter la persistance, mais pas vous, le développeur du bean.<br />
Un troisième <strong>enterprise</strong> bean appelé Teller transfère les fonds d’un<br />
compte à l’autre. C’est un bean session stateless qui montre comment les<br />
appels à plusieurs <strong>beans</strong> entité peuvent être regroupés dans la même<br />
transaction gérée par le conteneur. Même si l’opération de crédit se<br />
produit avant l’opération de débit au cours de l’opération de transfert, le<br />
conteneur annule (rollback) la transaction si le débit échoue, et ni le débit<br />
ni le crédit n’est effectif.<br />
Vous trouverez le code complet de l’exemple bank dans le répertoire /<br />
Borland/AppServer/examples/ejb/bank.<br />
L’interface locale d’un bean entité<br />
Plusieurs <strong>beans</strong> entité peuvent partager les mêmes interfaces locale et<br />
distante, même si un bean utilise la persistance gérée par le conteneur et<br />
les autres la persistance gérée par le bean. Les deux <strong>beans</strong> entité<br />
SavingsAccount et CheckingAccount utilisent la même interface locale,<br />
AccountHome. Ils utilisent également la même interface distante Account.<br />
L’interface locale d’un bean entité est très semblable à l’interface locale<br />
d’un bean session. Elles étendent la même interface javax.ejb.EJBHome.<br />
L’interface locale <strong>des</strong> <strong>beans</strong> entité doivent inclure au moins une méthode<br />
find. La méthode create() est facultative.<br />
Voici le code de l’interface AccountHome :<br />
public interface AccountHome extends javax.ejb.EJBHome {<br />
Account create(String name, float balance)<br />
throws java.rmi.RemoteException, javax.ejb.CreateException;<br />
Account findByPrimaryKey(AccountPK primaryKey)<br />
throws java.rmi.RemoteException, javax.ejb.FinderException;<br />
java.util.Enumeration findAccountsLargerThan(float balance)<br />
throws java.rmi.RemoteException, javax.ejb.FinderException:<br />
}<br />
L’interface locale AccountHome implémente trois métho<strong>des</strong>. Alors que la<br />
méthode create() n’est pas obligatoire pour les <strong>beans</strong> entité, l’exemple<br />
D é veloppement <strong>des</strong> <strong>beans</strong> entité 10-11