Ressources de développement EJB 2.x

Cette rubrique décrit les ressources et outils de développement communément utilisés dans le développement EJB version 2.x.

Modules EJB

Les modules EJB s'affichent dans la vue Explorateur de projets de la perspective Java EE et correspondent à des projets EJB.

Un module EJB permet de regrouper des beans enterprise dans une seule unité déployable. Un module EJB est développé dans un projet EJB et peut être exporté sous la forme d'un fichier JAR EJB autonome, ou combiné à d'autres modules EJB ou Web dans une application d'entreprise. Un fichier JAR EJB a le format d'un fichier d'archive standard Java. Un module EJB contient les éléments suivants :

  • un ou plusieurs beans enterprise et leurs fichiers .class et .java associés
  • des graphiques et d'autres fichiers selon les besoins du bean enterprise
  • un descripteur de déploiement (le type de fichier pour le descripteur de déploiement est XML (Extensible Markup Language)). Ce fichier déclare le contenu du module EJB, définit la structure des beans dans le module et décrit la manière dont les beans doivent être utilisés lors de l'exécution.
  • Un fichier MANIFEST.MF dans le répertoire META-INF. Le fichier de manifeste peut contenir une entrée de chemin d'accès aux classes, avec des références à d'autres fichiers JAR ou modules EJB dans une application d'entreprise J2EE. Il définit les dépendances externes du module.

Un module EJB est installé et s'exécute dans un conteneur EJB.

Un bean enterprise est un composant Java qui peut être combiné à d'autres ressources pour créer des applications client/serveur réparties.

Remarque : Si vous créez un fichier JAR de client EJB pour le module EJB, les classes d'interface client des beans enterprise ne se trouvent pas dans le fichier JAR EJB, mais dans le fichier JAR de client EJB.
Projets EJB

Dans le plan de travail, vous créez et gérez les ressources des applications d'entreprise dans des projets. Un projet EJB est un module logique qui permet d'organiser les beans enterprise.

Le plan de travail prend en charge les projets EJB 1.1, EJB 2.0 et EJB 2.1. Le projet qui contient les beans d'entreprise doit correspondre au niveau de spécification J2EE 1.3 ou à un niveau de spécification supérieur s'il s'agit d'un projet EJB 2.0 et au niveau de spécification J2EE 1.4 pour un projet EJB 2.1. Dans un projet EJB 1.1, vous pouvez créer uniquement des beans EJB 1.1.

Un projet EJB est un projet Java spécialisé. A l'instar d'un projet Java, un projet EJB doit disposer d'un ou de plusieurs dossiers source contenant les fichiers source et de sortie du projet. Par défaut, le dossier source s'appelle ejbModule, mais vous pouvez changer le nom lorsque vous créez le projet ou des dossiers source. Lorsque vous publiez ou déployez le projet, le contenu du dossier ou des dossiers est agrégé.

Vous ne pouvez pas utiliser le projet EJB comme dossier source sous peine de générer des erreurs. En outre, bien qu'un projet puisse contenir plusieurs dossiers source, un seul de ces dossiers peut contenir le dossier META-INF dans lequel figurent les fichiers MANIFEST.MF et de descripteur de déploiement.

Remarque : Si vous créez un fichier JAR de client EJB pour le module EJB, les classes d'interface client des beans enterprise ne figurent pas dans le projet EJB, mais dans un projet JAR de client EJB distinct. Les projets JAR de client EJB figurent dans l'Explorateur de projets sous forme de projets Java sous le noeud Autres projets.
Projets de client EJB

Les outils EJB permettent de créer des projets JAR de client EJB pour les modules EJB. Un projet JAR de client EJB contient toutes les classes d'interface nécessaires à un programme client pour utiliser les vues client des beans enterprise du projet EJB. Lorsque vous créez un projet JAR de client EJB pour un projet EJB, un nouveau projet Java est créé et ajouté à l'espace de travail. Le projet client EJB est ajouté sous la forme d'un fichier JAR d'utilitaire de projet à chaque module auquel appartient le projet EJB.

Lorsque vous utilisez l'assistant pour créer un projet EJB, un projet JAR de client EJB est également créé par défaut. Toutefois, vous pouvez désélectionner cette option dans l'assistant.

Conseil : Vous pouvez également ajouter le projet client EJB à une autre application d'entreprise qui ne contient pas le projet EJB sous la forme d'un module. Ainsi, le fichier JAR de client EJB peut être exporté et placé dans le fichier EAR lorsque l'application est exportée.
Beans enterprise

Un bean enterprise est un composant Java qui peut être combiné à d'autres ressources pour créer des applications client/serveur réparties.

Il existe trois types de bean enterprise : beans entity, beans session et beans gérés par message. Généralement, les trois types de bean sont utilisés ensemble dans une application d'entreprise.

Beans entity
Les beans entity contiennent des données permanentes. Les beans entity à persistance gérés par conteneur nécessitent des connexions à des bases de données. Les beans entity à persistance gérés par le bean gèrent les données permanentes en fonction de la méthode définie dans le code des beans. Ceci peut inclure l'écriture dans des bases de données ou des fichiers XML, par exemple.
Beans Session
Les beans session ne nécessitent pas d'accès aux bases de données, mais peuvent accéder à ces dernières indirectement (selon les besoins) en accédant aux beans entity. Les beans session peuvent également accéder directement aux bases de données (et aux autres ressources) en utilisant des références aux ressources.
Beans gérés par message
Les beans gérés par message correspondent à un type spécial de bean enterprise qui font office d'utilisateurs de messages dans le système de messagerie JMS. A l'instar des utilisateurs de messages JMS standard, les beans gérés par message exécutent la logique applicative en fonction du contenu du message. La création et l'allocation dynamiques d'instances de beans gérés par message simulent le comportement des beans enterprise de session sans état de plusieurs manières. Toutefois, les beans gérés par message diffèrent des beans enterprise de session (et des autres types de bean enterprise) de deux manières :
  • Les beans gérés par message traitent plusieurs messages JMS de manière asynchrone au lieu de traiter une séquence sérialisée d'appels de méthodes.
  • Les beans gérés par message ne disposent pas d'une interface locale ou distante, et les clients externes ou internes ne peuvent donc pas y accéder directement.
Descripteurs de déploiement

Un descripteur de déploiement contient les données de configuration qu'utilise l'environnement d'exécution pour une application. Un descripteur de déploiement peut contenir des informations sur les éléments suivants :

  • la structure et le contenu (beans enterprise, par exemple) de l'application
  • les références aux dépendances internes et externes (par exemple, un bean enterprise dans un module EJB peut nécessiter un autre bean enterprise qui ne figure pas dans le même module)
  • les références aux objets de fabrique de ressources, tels que les URL ou les sources de données JDBC
  • les rôles de sécurité que le conteneur utilise lors de l'implémentation du contrôle d'accès nécessaire à l'application
  • les informations transactionnelles sur la manière dont le conteneur doit gérer les transactions pour l'application et s'il doit les gérer

Les descripteurs de déploiement sont des fichiers XML regroupés avec les fichiers de l'application dans un fichier d'archive Java. Un descripteur de déploiement EJB s'appelle ejb-jar.xml et il se trouve dans le dossier META-INF d'un projet EJB. Une application J2EE contient un fichier de descripteur de déploiement au niveau application qui régit l'ensemble de l'application. Elle contient également des descripteurs de déploiement au niveau composant, un pour chaque module dans l'application.