Académique Documents
Professionnel Documents
Culture Documents
Département Informatique
Module : Technologie JavaEE
Avant de créer un projet EJB, il est nécessaire de créer d’installer tous outils
fournis par JBossTools, selon la marketplace d’Eclipse Eclipse Marketplace. On
cherche la solution Jboss Tools pour la télécharger et l’installer.
Puis on installe justement les plugins qu’on a besoin. Dans ce cas, on est besoin uniquement
d’installer du plugin JBoss As, WildFly & EAP Server Tools, puis on confirme l’installation de
la solution. Une fois l’installation soit terminée, on accepte tous les licences demandées.
Création d’un projet EJB :
Sur la liste des projets qu’on peut créer, on choisir de créer un EJB Project (File > New > EJB
Project) nommé EJBProj. Premièrement, on doit configurer l’IDE Eclipse avec le serveur
WildFly version 27 qu’on a situé sur le chemin C:/OutilsJEE dans un dossier nommé "wildfly-
v27".
Selon le Button « New Runtime » on choisie le RunTime Environment « WildFly 27 Runtime » du
dossier JBoss Community.
Puis on sélectionne le chemin du serveur sur le disque C, avec la sélection du JRE installé. Pour arriver
finalement de créer le projet avec succès.
Une fois le projet est créé, on essaye d’ajouter l’API de persistance JPA selon les propriétés du projet.
On choisit l’onglet Project Facets, puis on chose la Facet JPA. Eclipse a automatiquement créé le
fichier de configuration persistance.xml
Création d’EJB -Entity :
Dans le module ejbModule, on ajoute une classe jpaEntity (New > JPA Entity) nommée Compte
responsable gérer un compte bancaire.
Cette entité contient 3 propriétés :
- Code : Représente le compte du compte sous forme des chiffres (Long integer)
- Solde : Le solde du compte (double)
- DateCréation : La date de création de compte (date)
- On ajoute l’annotation suivante pour mentionner que l’attribut code soit auto-incrémenté :
- @GeneratedValue (strategy=GenerationType.IDENTITY)
Tester le framework générale la table compte sur la base de
données :
Pour être capable de créer et générer les tables par le Framework, on doit ouvrir le fichier de
configuration persistence.xml. Sur l’onglet Schéma Generation, on choisit comme option pour
Database action et Scripts generation le choix Drop and Create.
Puis on choisit l’onglet Source pour changer le code source du fichier, on ajoute à la balise d’unité de
persistance <persistance-unit>, l’attribut transaction-type=”jta”.
Et on ajoute le code suivant aussi à l’unité de persistance :
<jta-data-source>java:/dsBanque</jta-data-source
Après la configuration du serveur, on le démarre sans déployer le projet. Puis on consulte la console
d’administration JBoss selon le lien localhost:8080. On remarque le serveur nos demande de saisir le
nom d’utilisateur et le mot de passe de l’utilisateur pour accès au site.
Création d’un utilisateur pour administrateur du serveur :
On ouvre la ligne de commandes en mode administrateur, puis on change le répertoire en répertoire
du serveur WildFly sur le disque C, on exécute le fichier add-user.bat pour créer un nouvel
administrateur du serveur en utilisant le mot "admin" comme un nom d’utilisateur et un mot de
passe.
Pour effectuer la connexion entre le Framework et la base de données, on se connecte à
la console d’administration en utilisant le login et le mot de passe configurée (admin).
Après la configuration de d’administrateur du serveur, on doit maintenant créer la base
de données en utilisant le système phpMyAdmin, la base de données est nommée «
DBBANQUE ».
Puis on spécifie les informations de connexion à la base de données. On écrit le nom de la
base de données au niveau URL de connexion " jdbc:mysql://localhost:3306/
BD_BANQUE", le nom d’utilisateur "root" et son password
SERIE 5 PARTIE 2 :
Instalation du plugin Jbosstools :
LES INTERFACES :
package session;
import java.util.List;
import javax.ejb.Remote; import entities.Compte;
@Remote
public interface IBanqueRemote {
public void addCompte(Compte c);
public List<Compte> consulterComptes();
public Compte consulterCompte(Long code);
public void verser(Long code,double montant);
public void retirer(Long code,double montant);
}
package session;
import java.util.List;
import javax.ejb.Local;
import entities.Compte;
@Local
public interface IBanqueLocal {
public void addCompte(Compte c);
public List<Compte> consulterComptes();
public Compte consulterCompte(Long code);
public void verser(Long code,double montant);
public void retirer(Long code,double montant);
}
CLASSE CONTIENT METHODE MAIN :
package session;
import java.util.ArrayList;
import java.util.Date;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import entities.Compte;
package web;
import java.io.I0Exception;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import metier.entities.Compte;
@WebServlet(name="cs",urlPatterns={"/controleur"})
@E3B
@Override
response)
if(action!=nu11){
if(action.equals("Consulter")){
Long code=Long.parseLong(request.getParameter("code"));
request.setAttribute("code", code);
Compte cp=metier.consulterCompte(code);
request.setAttribute("compte", cp);
request.setAttribute("comptes", metier.consulterComptes());
else if((action.equals("Verser"))||(action.equals("Retirer"))){
Long code=Long.parseLong(request.getParameter
("code"));
request.setAttribute("montant", montant);
request.setAttribute("code", code);
if(action.equals("Verser")){
metier.verser(code, montant);
}
else{
metier.retirer(code, montant);
request.setAttribute("compte", metier.consulterCompte(code));
e.getMessage());}
request .getRequestDispatcher("Banque.jsp").forward(request,
response);
pageEncoding="IS0-8859-1"%>
<!DOCTYPE html>
<htm1> <head>
<meta charset="IS0-8859-1">
</head>
<body>
<div id="formRecherche">
<table>
<tr>
<td>${errCode}</td>
</tr>
</table>
</form>
</div>
<c:if test="g{(compte!=null)|[(mtMsgErr!=null)}">
<div id="compte">
<table>
<tr><td>Solde:</td><td>${compte.solde}</td> </tr>
<tr><td>Date Création:</td><td>${compte.dateCreation}</td></tr
</table>
</div>
<div id="formOperations">
<table><tr>
value="g{montant}"></td>
<td>${mtMsgERr}</td>
</tr></table>
</form></div>
</c:if>
<c:if test="${comptes!=null}">
<div id="LlisteComptes">
<tr>
</tr>
</c:forEach>
</table>
</div>
</c:if>
<div id="errors">
${exception} ©
</div>
</body>
</html>