E. J. B. (1998)

Home

Enterprise JavaBeans : composants Java d'entreprise.

Besoin

Fournir un modèle de composants Java pouvant être :

Analyse

Les composants EJB peuvent représenter des :

Conception

Développement

Chaque composant EJB est mis en oeuvre par un ensemble d'objets :

Les composants trouvent les éléments externes (autres EJB, sources de données, files de messages, etc.) auxquels ils veulent accéder via un annuaire compatible JNDI.

Assemblage

Une fois définis, les composants EJB peuvent être assemblés en un module EJB. On résoud alors, entre composants de ce module, les dépendances :

Déploiement

Une fois assemblé, un module EJB peut être déployé dans un conteneur EJB. On résoud alors, pour les composants de ce module, les dépendances avec l'environnement de déploiement, telles que les dépendances de :

Implémentation

L'API des EJB est définie dans le package javax.ejb.

Un EJB est développé à partir de :

La recherche des éléments externes doit s'effectuer en interrogeant le contexte de nommage de l'environnement du composant :

Au moment du déploiement, les noms recherchés dans cet environnement local seront associés à des noms absolus d'objets déployés dans le serveur (tout ou partie de cette résolution de nom peut également s'effectuer lors de l'assemblage, s'il s'agit de désigner d'autres EJB locaux au module de l'EJB appelant).

Exemples

Un exemple de classe d'instance d'EJB Entité 2.0 est :

import javax.ejb.*;

public abstract class SkillTree implements EntityBean {
/**
* Constructeur par défaut, toujours vide
*/

public SkillTree() {}

public SkillKey ejbCreate (Skill someRootSkill) throws CreateException {
setRoot (someRootSkill);
return null; // En CMP la clé est déduite
}

/**
* Accesseurs CMP
*/

public abstract Object getRoot();
public abstract void setRoot (Object);

public void ejbStore() {
// Rien à faire ici
}

public void ejbLoad() {
// Rien à faire ici
}

public void ejbRemove() {
// Rien à faire ici
}

public void ejbActivate() {
// Rien à faire ici
}

public void ejbPassivate() {
// Rien à faire ici
}

public void setEntityContext (EntityContext someContext) {
ejbContext = someContext;
}

public void unsetEntityContext() {
}

private EntityContext ejbContext;
}

Notes

Limitations

On peut reprocher aux EJB :

On ne peut pas reprocher aux EJB < 3 :

Voir

Home