Développons en Java avec Eclipse 0.80.1 | |
Copyright (C) 2003-2008 Jean-Michel DOUDOUX | (date de publication : 26/12/2008) |
|
Eclipse en standard ne propose aucune fonctionnalité particulière pour développer des EJB. Il est cependant possible d'utiliser un plug-in pour faciliter le développment des EJB. C'est notamment le cas du plug-in WTP.
Ce chapitre contient plusieurs sections :
Le plug-in WTP 1.5 propose des assistants et l'utilisation de XDoclet pour développer des EJB en version 2.1.
Cette section va mettre en oeuvre les outils suivants sous Windows :
Outil |
Version |
Rôle |
JDK |
1.5.0_7 |
|
Eclipse |
3.2 |
IDE |
JBoss |
4.0.4.GA |
conteneur EJB |
Créez un nouveau projet de type « EJB / Projet EJB »
Cliquez sur le bouton « Suivant »
Saisissez le nom du projet, cochez la case « Ajouter à un fichier EAR » et sélectionnez l'environnement d'exécution. Si aucun n'est défini cliquez sur le bouton « Nouveau ... ».
Sélectionnez le type de serveur « JBoss / JBoss v4.0 » dans l'exemple de cette section et cliquez sur le bouton « Suivant ».
Sélectionnez le répertoire contenant le JBoss en cliquant sur le bouton « Parcourir ».
cliquez sur le bouton « Terminer »
Cliquez sur le bouton « Suivant »
Cliquez sur le bouton « Suivant »
Cliquez sur le bouton « Terminer »
Cliquez sur « Oui » pour créer les projets
Trois projets sont créés
Une erreur est signalée sur le projet TestEJB si XDoclet n'est pas correctement configuré. Pour la corriger, il ouvrir les Préférences d'Eclipse.
Sélectionnez le répertoire d'installation de XDoclet et sa version
Cliquez sur le bouton « OK »
Créez une nouvelle entité de type EJB / EJB XDoclet
Cliquez sur le bouton « Suivant »
Si XDoclet n'est pas correctement configuré, une erreur empêche la poursuite de l'assistant. Pour réaliser cette configuration, il suffit de cliquer sur le lien « Préférences »
L'assistant permet de sélectionner le type d'EJB à créer.
Sélectionnez le type et cliquez sur le bouton « Suivant »
Saisissez le package et le nom de la classe : il est recommandé de suffixer le nom de la classe par Bean.
Cliquez sur le bouton « Suivant »
La page suivante de l'assistant permet de préciser des informations sur l'EJB, cliquez sur le bouton « Suivant ».
Cliquez sur le bouton « Terminer ».
Les fichiers de base sont générés puis les autres fichiers sont générés grâce à un script Ant qui exécute XDoclet
Ouvrez la classe MonPremierEJBBean générée
Remplacez la méthode foo par la méthode afficher en saisissant son code :
Enregistrez le fichier modifié : le script est exécuté pour permettre à XDoclet de synchroniser les différents fichiers notamment l'interface MonPremierEJB. Le projet est ainsi composé des entités suivantes :
Le projet TestEJBClient comporte une erreur car la classe MonPremierEJB ne peut être résolue.
Il suffit dans ce cas de copier l'interface MonPremierEJB du projet TestEJB dans le projet TestClient.
Sélectionnez le projet TestEJBEAR et utilisez l'option « Exécuter en tant que / Exécuter sur le serveur »
Cochez la case « Définir le serveur comme serveur par défaut du projet » et cliquez sur le bouton « Suivant »
Cliquez sur le bouton « Suivant ».
Cliquez sur le bouton « Terminer ».
Ouvrez la vue « Serveur »
Sélectionnez le serveur JBoss et cliquez sur le bouton ou sélectionnez l'option « Démarrer » du menu contextuel
La vue console affiche les informations lors du démarrage du serveur.
Créez un nouveau projet de type Java nommé TestEJBApp.
Dans les propriétés du projet, sur l'onglet « Projets », cliquez sur le bouton « Ajouter »
Sélectionnez le projet TestEJBClient et cliquez sur le bouton « OK ».
Cliquez sur l'onglet « Bibliothèques »
Cliquez sur le bouton « Ajouter une bibliothèque ... ».
Sélectionnez « Environnement d'exécution du serveur » et cliquez sur le bouton « Suivant ».
Sélectionnez JBoss v4.0 et cliquez sur le bouton « Terminer ».
Cliquez sur le bouton « OK ».
Créez une nouvelle classe Java nommée TestEJBApp et saisissez son code :
Exemple : |
package com.jmdoudoux.test.ejb.app;
import java.util.Hashtable;
import javax.naming.Context;
import com.jmdoudoux.test.ejb.MonPremierEJB;
import com.jmdoudoux.test.ejb.MonPremierEJBHome;
import com.jmdoudoux.test.ejb.MonPremierEJBUtil;
public class TestEJBApp {
public static void main(String[] args) {
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
environment.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
environment.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");
MonPremierEJB monEJB = null;
try {
MonPremierEJBHome home = MonPremierEJBUtil.getHome(environment);
monEJB = home.create();
System.out.println(monEJB.afficher("test"));
} catch (Exception e) {
e.printStackTrace();
}
}
} |
Exécutez la classe en tant qu'application Java
Résultat : |
Bonjour test |
Le plug-in Lomboz propose des fonctionnalités pour faciliter le développement d'EJB dans un projet de type « Java / Lomboz J2EE Wizard / Lomboz J2EE Project ». La configuration de Lomboz et la créatino d'un tel projet est détaillé dans le chapitre "".
Cette section va utiliser Lomboz avec JBoss.
Version utilisée dans cette section |
|
Eclipse |
2.1.2 |
J2RE |
1.4.2_02 |
Lomboz |
2.1.2 |
JBoss |
3.0.6 |
Il faut créer une nouvelle entité de type « Java / Lomboz J2EE Wizards / Lomboz EJB Creation Wizard ».
Cliquez sur le bouton « Suivant »
Sur la page suivante, il faut saisir le nom du package, le nom de l'EJB, sélectionner le type « Stateless Session EJB » ou « Statefull Session EJB » selon le type d'EJB session à créer et enfin cliquer sur le bouton « Fin ».
L'assistant génère un fichier source java contenant le squelette du code de l'implémentation de l'EJB. Le nom du fichier généré est constitué du nom de l'EJB et du sufixe Bean qui est automatiquement ajouté.
Exemple : |
package com.test.lomboz2.ejb;
import javax.ejb.SessionBean;
/**
* @ejb.bean name="MonEJBSession1"
* jndi-name="MonEJBSession1Bean"
* type="Stateless"
**/
public abstract class MonEJBSession1Bean implements SessionBean {
} |
Ce code contient un tag qui sera traiter par Xdoclet pour générer ou enrichir certains fichiers (l'interface Home du Bean, le fichier descripteur de déploiement et le fichier jboss.xml).
Dans la vue « Packages », il faut sélectionner la classe d'implementation du Bean précédemment générée et utiliser l'option « Add EJB Method » du menu contextuel « Lomboz J2EE » ou utiliser l'option « Autre... » du menu contextuel « Nouveau ». Avec cette dernière possibilité, il faut sélectionner la création d'une entité de type « Lomboz EJB Method Wizard »
L'assistant permet de saisir la signature complète de la méthode, le type de méthode et dans quelle interface sera générée la méthode.
L'assistant génère le code suivant :
Exemple : |
/**
* @ejb.interface-method
* tview-type="remote"
**/
public String monMessage(String nom){
return null;
} |
Le tag dans les commentaires sera utilisé par Xdoclet pour la génération des fichiers nécessaire à l'EJB.
Il faut saisir le code des traitements de la nouvelle méthode.
Exemple : |
/**
* @ejb.interface-method
* tview-type="remote"
**/
public String monMessage(String nom) {
return "Bonjour " + nom;
} |
ajout de l'EJB à un module
Dans la vue « Package », sélectionner la classe du bean et utiliser l'option « Lomboz J2EE / Add EJB to Module »
Sélectionner le module et cliquer sur « OK ».
Avant de pouvoir déployer un ou plusieurs EJB, il faut demander à Lomboz de générer les fichiers nécessaires aux EJB grâce à Xdoclet et aux tags utiles insérer dans le code
Dans la vue « Lomboz », il faut utiliser sur le module EJB l'option « Generate EJB files ».
L'EJB est affichée dans la vue Lomboz.
Lomboz a généré tous les fichiers nécessaires au bean
Dans la vue « Lomboz », sélectionner le module EJB concerné et utiliser l'option « Deploy ».
Le fichier testlomboz2EJB.jar est créé et enregistrer dans le répertoire server/default/deploy de JBOSS.
|